xml地图|网站地图|网站标签 [设为首页] [加入收藏]

智能家电

当前位置:美高梅游戏网站 > 智能家电 > TypeScript联合类型

TypeScript联合类型

来源:http://www.gd-chuangmei.com 作者:美高梅游戏网站 时间:2019-10-03 12:39

图片 1

联合类型(Union Types)表示取值可以为多种类型中的一种

TypeScript 团队继续以双月发布节奏发布了 TypeScript 3.3,这一版本改进了调用联合类型的行为以及复合项目增量文件的监听性能。该团队还宣布了未来六个月的TypeScript 路线图。

let somThing: number | string;
somTing = "shenyubin";
somTing = 18;

TypeScript 3.0 增加了对复合项目的支持,可以将大型项目分成较小的项目,改进–build 模式下的构建时间,而且只重新编译必要的项目和依赖项,以此来优化项目间的构建。同时还增加了一个项目内增量构建 API,用于更新发生变更或包含可能会影响类型检查的依赖项的文件。

如果赋值其它类型就会报错,比如说:

在 3.0 发布之后,有关在复合项目中使用–watch 标志的性能问题的抱怨有所增加。复合项目并没有利用项目内增量构建功能,而是进行完整的项目构建。

somTing = true;

现在,在 TypeScript 3.3 的–build 模式下使用–watch 标志可以利用增量文件监听功能显著改善构建时间,可以将构建时间平均缩短 50-75%。

当 TypeScript 不确定一个联合类型的变量到底是哪个类型的时候,我们只能访问此联合类型的所有类型里共有的属性或方法

TypeScript 支持联合类型,开发人员可以访问联合成员所共有的属性。在调用类型时,如果每个类型没有具有相同参数的调用签名,就很难为返回类型定义联合。

function getLength(something: string | number): number {
    return something.length;
}
// index.ts(2,22): error TS2339: Property 'length' does not exist on type 'string | number'.
//   Property 'length' does not exist on type 'number'.

在 TypeScript 3.3 中,每个联合成员的参数组合在一起形成新的签名。只有当联合中有一个类型具有多个重载并且有一个类型具有通用签名时,才会应用新的行为。TypeScript 团队在 TypeScript 3.3 中添加这一新增功能,作为改进方案的第一步,并可能在将来的版本中做出进一步的改进。

length 不是 string 和 number 的共有属性,所以会报错。
访问 string 和 number 的共有属性是没问题的:
toString()函数是根据原始布尔值或者 booleanObject 对象的值返回字符串 "true" 或 "false"

与最近发布的版本相比,TypeScript 3.3 只提供了相对适度的新功能,主要是因为双月发布节奏刚好碰上了寒假,但也可能是因为 TypeScript 团队在六个月路线图中提及的内容,线路图重申了除了为语言添加更多功能之外的工作:

function getString(something: string | number): string {
    return something.toString();
}
  • 将类型带给所有开发者;
  • 借助强大的工具提高生产力;
  • 可访问性和用户体验;
  • 社区参与;
  • 基础设施和工程系统;

联合类型的变量在被赋值的时候,会根据类型推论的规则推断出一个类型:

TypeScript 团队仍然专注于添加新的 ECMAScript 功能和改进 TypeScript,但它已达到了一定程度的稳定性。

图片 2

本文由美高梅游戏网站发布于智能家电,转载请注明出处:TypeScript联合类型

关键词:

上一篇:美高梅棋牌上学深造深造!

下一篇:没有了