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

河南省建筑信息平台兰州网站推广优化

河南省建筑信息平台,兰州网站推广优化,wordpress主题hestia,网站经营网络备案信息管理系统TypeScript 中的type与interface 对于 TypeScript#xff0c;有两种定义类型的方法#xff1a;type与interface。 人们常常想知道该使用哪一种#xff0c;而答案并不是一刀切的。这确实取决于具体情况。有时#xff0c;其中一种比另一种更好#xff0c;但在许多情况下有两种定义类型的方法type与interface。 人们常常想知道该使用哪一种而答案并不是一刀切的。这确实取决于具体情况。有时其中一种比另一种更好但在许多情况下我们可以互换使用它们。 那么让我们来分析一下type与interface有其区别和相似之处。 在本文中我们将深入探讨这些区别并总结什么时候使用它们。 type 在js中有一些基本类型如字符串、布尔值、数字、数组、元组和枚举。通过 TypeScript的type我们定义更多的类型我们不是在创造新类型只是给他们起了更友好的名字。这使得我们的代码更容易阅读和理解。 type MyNumber number; type User {id: number;name: string;email: string; }例如我们可以为number创建一个名为MyNumber的类型别名因此我们可以直接说MyNumber而不是写number。 我们还可以为User 创建一个类型别名它描述了用户的数据应该是什么样子。 当人们谈论type时他们实际上是在谈论类型别名。这就像给同一组事物赋予不同的名称一样。 interface 在 TypeScript 中将interface视为对象必须遵循的一组规则或要求。 interface Client { name: string; address: string; }现在有另一种方式来表达这些规则。我们可以使用所谓的“类型注释”来更好的解释Client所包含的属性。 因此无论我们使用type还是interface我们本质上都是在为Client定义相同的期望集。这就像为同一组指令赋予两个不同的名称。 type与interface的差异 type和interface都是用于定义自定义数据结构和形状但它们的行为和用法有一些差异。 原始类型 使用type type MyNumber number;使用interface 我们不能像直接使用interface定义原始类型number。原始类型都是在 TypeScript 中预定义的。 联合类型 使用type type MyUnionType number | string;在这里我们定义了一个MyUnionType的类型它可以保存number或string类型的值。 使用interface interface通常不用于直接表示联合类型。 函数类型 使用type type MyFunctionType (arg1: number, arg2: string) boolean;这定义了一个MyFunctionType函数的类型该函数接受两个参数一个数字和一个字符串并返回一个布尔值。 使用interface interface MyFunctionInterface {(arg1: number, arg2: string): boolean; }声明合并 使用type 类型别名不支持声明合并。如果多次定义相同的类型别名将会导致错误。 使用interface interface Person {name: string; }interface Person {age: number; }TypeScript 会自动将这两个Person接口合并为一个并且具有name和age的属性。 扩展 使用extends interface A { propA: number; } interface B extends A { propB: string; }接口B扩展接口A继承propA属性并添加新属性propB。 使用来扩展 type AB A { propB: string; }在这里我们使用交集将类型A与新属性propB组合起来创建类型AB。 处理扩展时的冲突 TypeScript 强制扩展时具有相同名称的属性类型匹配 interface A { commonProp: number; } interface B { commonProp: string; } interface AB extends A, B { } // Error: Property commonProp must have the same type in A and B要解决冲突我们需要确保类型匹配或使用函数的方法重载。 使用元组类型 使用type type MyTupleType [number, string]; const tuple: MyTupleType [42, hello];在这里我们使用type定义一个元组类型然后我们可以创建该元组类型的变量。 使用interface interface MyTupleInterface {0: number;1: string; } const tuple: MyTupleInterface [42, hello];我们还可以使用接口定义元组类型并且用法保持不变。 何时使用type与interface 当需要组合或修改现有结构时请使用interface。如果我们正在使用库或创建新库那么interface是我们的首选。 它们允许我们合并或扩展声明从而更轻松地使用现有代码。当我们考虑面向对象编程时interface也更具可读性。 当我们需要更强大的功能时可以选择type。TypeScript 的类型系统提供了高级工具例如条件类型、泛型、类型防护等等。 这些功能使我们可以更好地控制类型帮助我们创建健壮的强类型应用程序。interface无法提供这些功能。 我们通常可以使用type与interface具体取决于我们的个人喜好。但是在以下情况下请使用type 当我们想要为基本数据类型创建新名称例如“字符串”或“数字”时。定义更复杂的类型例如联合、元组或函数时。重载函数时。使用映射类型、条件类型或类型防护等高级功能时。 type通常更灵活且更具表现力。它们提供了interface无法比拟的更广泛的高级功能并且 TypeScript 不断扩展其功能。 我们使用类型别名来自动生成对象类型的 getter 方法这是interface无法做到的 type Client {name: string;address: string; } type GettersT {[K in keyof T as get${Capitalizestring K}]: () T[K]; }; type clientType GettersClient;// { // getName: () string; // getAddress: () string; // }通过利用映射类型、模板文字和keyof运算符我们创建了一个可以自动为任何对象类型生成 getter 方法的类型。 此外许多开发人员更喜欢使用type因为它们与函数式编程范例非常一致。 TypeScript 中类型表达式的丰富性使我们可以更轻松地使用组合和不变性等函数概念同时保持代码中的类型安全。
http://www.w-s-a.com/news/779945/

相关文章:

  • 简单的购物网站模板跨境建站平台
  • 网站主机多大html网站地图生成
  • 可信赖的邵阳网站建设德清做网站
  • 上传文件网站根目录wordpress博客管理
  • 网站seo优缺点网站建设公司咨
  • 网站设计需要会什么建设网站的目的以及意义
  • 怎么样推广自己的网站wordpress register_form
  • 网站公司建站凤翔网站建设
  • 网站建设协低价格的网站建设公司
  • 研发网站建设报价深圳网站建设前十名
  • 宠物发布网站模板wordpress中文免费电商模板
  • 济南做网站创意服装品牌策划公司
  • 本地电脑做视频网站 外网连接不上软件商城源码
  • 足球直播网站怎么做crm系统介绍
  • 株洲网站建设联系方式东莞凤岗网站制作
  • 小纯洁网站开发如何注册域名
  • 网上做试卷的网站如何把刚做的网站被百度抓取到
  • 滕州网站建wordpress用户中心按钮不弹出
  • 清远新闻最新消息福建seo搜索引擎优化
  • 凡客建站网微信网站怎么做的
  • 网站建设费怎么写会计科目行业网站建设公司
  • 网站里的友情链接网站建设个人简历的网页
  • 佛山自助建站软件湖南seo优化推荐
  • 免费微信微网站模板下载不了优化人员配置
  • wordpress 导航网站主题画流程图的网站
  • 皮卡剧网站怎样做排名网
  • 网站开发 兼职哪个网站是做安全教育
  • 商品展示类网站怎么用群晖nas做网站
  • 长腿蜘蛛wordpresssem优化推广
  • 中国铁路建设监理协会官方网站深圳福田区怎么样