当前位置: 首页 > news >正文

营销的网站建设公司大连城乡建设局官网

营销的网站建设公司,大连城乡建设局官网,南京最好的网页制作公司,wordpress怎么定义不同的侧边栏目录 1、TypeScript 接口 1.1、实例 1.2、联合类型和接口 1.3、接口和数组 1.4、接口和继承 1.5、单继承实例 1.6、多继承实例 2、TypeScript 对象 2.2、对象实例 2.3、TypeScript类型模板 2.4、鸭子类型#xff08;Duck typing#xff09; 1、TypeScript 接口 接口…目录 1、TypeScript 接口 1.1、实例 1.2、联合类型和接口 1.3、接口和数组 1.4、接口和继承 1.5、单继承实例 1.6、多继承实例 2、TypeScript 对象 2.2、对象实例 2.3、TypeScript类型模板 2.4、鸭子类型Duck typing 1、TypeScript 接口 接口是一系列抽象方法的声明是一些方法特征的集合这些方法都应该是抽象的需要由具体的类去实现然后第三方就可以通过这组抽象方法调用让具体的类执行具体的方法。 TypeScript 接口定义如下 interface interface_name { } 1.1、实例 以下实例中我们定义了一个接口 IPerson接着定义了一个变量 customer它的类型是 IPerson。customer 实现了接口 IPerson 的属性和方法。 interface IPerson { firstName:string, lastName:string, sayHi: ()string } var customer:IPerson { firstName:Tom,lastName:Hanks, sayHi: ():string {return Hi there} } console.log(Customer 对象 ) console.log(customer.firstName) console.log(customer.lastName) console.log(customer.sayHi()) var employee:IPerson { firstName:Jim,lastName:Blakes, sayHi: ():string {return Hello!!!} } console.log(Employee 对象 ) console.log(employee.firstName) console.log(employee.lastName) 需要注意接口不能转换为 JavaScript。 它只是 TypeScript 的一部分。 编译以上代码得到以下 JavaScript 代码 var customer {firstName: Tom,lastName: Hanks,sayHi: function () { return Hi there; } }; console.log(Customer 对象 ); console.log(customer.firstName); console.log(customer.lastName); console.log(customer.sayHi()); var employee {firstName: Jim,lastName: Blakes,sayHi: function () { return Hello!!!; } }; console.log(Employee 对象 ); console.log(employee.firstName); console.log(employee.lastName); 输出结果为 Customer 对象 Tom Hanks Hi there Employee 对象 Jim Blakes 1.2、联合类型和接口 以下实例演示了如何在接口中使用联合类型 interface RunOptions { program:string; commandline:string[]|string|(()string); } // commandline 是字符串 var options:RunOptions {program:test1,commandline:Hello}; console.log(options.commandline) // commandline 是字符串数组 options {program:test1,commandline:[Hello,World]}; console.log(options.commandline[0]); console.log(options.commandline[1]); // commandline 是一个函数表达式 options {program:test1,commandline:(){return **Hello World**;}}; var fn:any options.commandline; console.log(fn()); 编译以上代码得到以下 JavaScript 代码 // commandline 是字符串 var options { program: test1, commandline: Hello }; console.log(options.commandline); // commandline 是字符串数组 options { program: test1, commandline: [Hello, World] }; console.log(options.commandline[0]); console.log(options.commandline[1]); // commandline 是一个函数表达式 options { program: test1, commandline: function () { return **Hello World**; } }; var fn options.commandline; console.log(fn()); 输出结果为 Hello Hello World **Hello World** 1.3、接口和数组 接口中我们可以将数组的索引值和元素设置为不同类型索引值可以是数字或字符串。 设置元素为字符串类型 interface namelist { [index:number]:string } // 类型一致正确 var list2:namelist [Google,Runoob,Taobao] // 错误元素 1 不是 string 类型 // var list2:namelist [Runoob,1,Taobao] 如果使用了其他类型会报错 interface namelist { [index:number]:string } // 类型一致正确 // var list2:namelist [Google,Runoob,Taobao] // 错误元素 1 不是 string 类型 var list2:namelist [John,1,Bran] 执行后报错如下显示类型不一致 script.ts(8,30): error TS2322: Type number is not assignable to type string. 设置元素为数字类型数组索引值为字符串 interface ages { [index:string]:number } var agelist:ages; // 类型正确 agelist[runoob] 15 // 类型错误输出 error TS2322: Type google is not assignable to type number. // agelist[2] google 1.4、接口和继承 接口继承就是说接口可以通过其他接口来扩展自己。Typescript 允许接口继承多个接口。继承使用关键字 extends。单接口继承语法格式 Child_interface_name extends super_interface_name 多接口继承语法格式 Child_interface_name extends super_interface1_name, super_interface2_name,…,super_interfaceN_name 继承的各个接口使用逗号 , 分隔。 1.5、单继承实例 interface Person { age:number } interface Musician extends Person { instrument:string } var drummer Musician{}; drummer.age 27 drummer.instrument Drums console.log(年龄: drummer.age) console.log(喜欢的乐器: drummer.instrument) 编译以上代码得到以下 JavaScript 代码 var drummer {}; drummer.age 27; drummer.instrument Drums; console.log(年龄: drummer.age); console.log(喜欢的乐器: drummer.instrument); 输出结果为 年龄: 27 喜欢的乐器: Drums 1.6、多继承实例 interface IParent1 { v1:number } interface IParent2 { v2:number } interface Child extends IParent1, IParent2 { } var Iobj:Child { v1:12, v2:23} console.log(value 1: Iobj.v1 value 2: Iobj.v2) 编译以上代码得到以下 JavaScript 代码 var Iobj { v1: 12, v2: 23 }; console.log(value 1: Iobj.v1 value 2: Iobj.v2); 输出结果为 value 1: 12 value 2: 23 2、TypeScript 对象 对象是包含一组键值对的实例。 值可以是标量、函数、数组、对象等如下实例 var object_name { key1: value1, // 标量key2: value, key3: function() {// 函数}, key4:[content1, content2] //集合 } 以上对象包含了标量函数集合(数组或元组)。 2.2、对象实例 var sites { site1:Runoob, site2:Google }; // 访问对象的值 console.log(sites.site1) console.log(sites.site2) 编译以上代码得到以下 JavaScript 代码 var sites { site1:Runoob, site2:Google }; // 访问对象的值 console.log(sites.site1) console.log(sites.site2) 输出结果为 2.3、TypeScript类型模板 假如我们在 JavaScript 定义了一个对象  var sites { site1:Runoob, site2:Google }; 这时如果我们想在对象中添加方法可以做以下修改 sites.sayHello function(){ return hello;} 如果在 TypeScript 中使用以上方式则会出现编译错误因为Typescript 中的对象必须是特定类型的实例。 var sites {site1: Runoob,site2: Google,sayHello: function () { } // 类型模板 }; sites.sayHello function () {console.log(hello sites.site1); }; sites.sayHello(); 编译以上代码得到以下 JavaScript 代码 var sites {site1: Runoob,site2: Google,sayHello: function () { } // 类型模板 }; sites.sayHello function () {console.log(hello sites.site1); }; sites.sayHello(); 输出结果为 hello Runoob 此外对象也可以作为一个参数传递给函数如下实例 var sites { site1:Runoob, site2:Google, }; var invokesites function(obj: { site1:string, site2 :string }) { console.log(site1 :obj.site1) console.log(site2 :obj.site2) } invokesites(sites) 编译以上代码得到以下 JavaScript 代码 var sites {site1: Runoob,site2: Google }; var invokesites function (obj) {console.log(site1 : obj.site1);console.log(site2 : obj.site2); }; invokesites(sites); 输出结果为 site1 :Runoob site2 :Google 2.4、鸭子类型Duck typing 鸭子类型英语duck typing是动态类型的一种风格是多态(polymorphism)的一种形式。 在这种风格中一个对象有效的语义不是由继承自特定的类或实现特定的接口而是由当前方法和属性的集合决定。 可以这样表述 当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子那么这只鸟就可以被称为鸭子。 在鸭子类型中关注点在于对象的行为能做什么而不是关注对象所属的类型。例如在不使用鸭子类型的语言中我们可以编写一个函数它接受一个类型为鸭子的对象并调用它的走和叫方法。在使用鸭子类型的语言中这样的一个函数可以接受一个任意类型的对象并调用它的走和叫方法。如果这些需要被调用的方法不存在那么将引发一个运行时错误。任何拥有这样的正确的走和叫方法的对象都可被函数接受的这种行为引出了以上表述这种决定类型的方式因此得名。 interface IPoint { x:number y:number } function addPoints(p1:IPoint,p2:IPoint):IPoint { var x p1.x p2.x var y p1.y p2.y return {x:x,y:y} } // 正确 var newPoint addPoints({x:3,y:4},{x:5,y:1}) // 错误 var newPoint2 addPoints({x:1},{x:4,y:3})
http://www.dnsts.com.cn/news/249278.html

相关文章:

  • 移动网站建设是什么意思大连个人做网站
  • 网站建设制度制定wordpress客户端登陆不了
  • 韩国网站免费观看微信建网站服务
  • 福州网站开发cms网站后台 开源
  • 河南网站建设优化定制衣服的软件app
  • 郑州做食用菌配送的网站阿里巴巴做国际网站多少钱
  • asp双语网站后台怎么用河北网络科技有限公司
  • 网站建设策划书结束语如何免费制作手机app
  • 旅游网站建设规划方案网站dns如何修改不了
  • 十堰响应式网站低价网站设计多少钱
  • 青岛做网站建设的公司排名导购类网站如何做会员互动
  • 国外网站打开很慢dns全国做网站的公
  • 手机宣传网站网站建设属于技术服务吗
  • 合肥论坛网站制作商务网站设计素材
  • 学习网站建设建议调查问卷网站品牌栏目建设
  • 建设部监理工程师网站蜘蛛云建网站怎样
  • 网站开发算什么费用怎么做网站开始动画
  • 机械设计网站推荐wordpress菜单 自定义大小写
  • 免费网站图片素材企业建设网站选择
  • 网站后台工程师公司部门部长是什么级别
  • 网站建设资金简述网站的推广策略
  • 用自己电脑怎么做网站建立网站的基本流程有哪些步骤
  • 仙游有人做网站做网站的数据从哪里来
  • wordpress响应式网站模板做app用什么软件
  • 绵阳商城网站建设网站是怎么做的
  • 个人做游戏下载网站侵权吗公司网站建设有什么好处
  • 长春火车站在哪个区网页设计怎么创建站点
  • 分析网站规划建设目标怎么查网站备案进度
  • 白云手机网站建设百度云虚拟主机搭建wordpress
  • 淘宝小网站怎么做的亚马逊seo关键词优化软件