TypeScript 高级特性深度解析
1. TSC 标志:STRICTFUNCTIONTYPES
由于历史原因,TypeScript 中的函数默认情况下其参数和 this 类型是协变的。若要采用更安全的逆变行为,需在 tsconfig.json 中启用 {"strictFunctionTypes": true} 标志。因为严格模式包含 strictFunctionTypes ,所以若已使用 {"strict": true} ,则无需额外设置。
2. 可赋值性
子类型和超类型关系是所有静态类型语言的核心概念,对理解可赋值性也十分重要。可赋值性指的是 TypeScript 对于能否在需要类型 B 的地方使用类型 A 的规则。
- 非枚举类型 :对于数组、布尔值、数字、对象、函数、类、类实例和字符串(包括字面量类型)等非枚举类型,当满足以下任一条件时,类型 A 可赋值给类型 B:
1. A <: B(即 A 是 B 的子类型)。
2. A 是 any 类型。
- 枚举类型 :对于使用 enum 或 const enum 关键字创建的枚举类型,当满足以下任一条件时,类型 A 可赋值给枚举 B:
1. A 是枚举 B 的成员。
2. B 至少有一个成员是数字,且 A 是数字。
超级会员免费看
订阅专栏 解锁全文
1904

被折叠的 条评论
为什么被折叠?



