TypeScript - 进阶类型
掌握TypeScript的高级类型特性,实现更精确的类型控制和更复杂的类型逻辑。
进阶 联合类型与类型守卫
| 主题 | 说明 | 关键字 |
|---|---|---|
| 联合类型 | A | B联合类型表示A或B或两者兼备、使用|分隔多个类型、宽类型向窄类型流转。 | 联合类型 | |
| 类型守卫 | typeof类型守卫、instanceof实例判断、in属性存在检查、自定义类型守卫函数。 | typeof instanceof in 类型守卫 |
| 类型断言 | as Type断言转换、<>尖括号断言、non-null非空断言!、类型守卫自动窄化类型。 | as ! 非空断言 |
| 类型谓词 is | parameter is Type自定义类型守卫、返回boolean同时告诉编译器窄化类型。 | is 类型谓词 |
进阶 特殊类型特性
| 主题 | 说明 | 关键字 |
|---|---|---|
| 类型推断 | TS自动推断变量类型、上下文推断、infer类型推断用于条件类型提取类型信息。 | 类型推断 infer |
| Literal Types | "hello"字符串字面量类型、100数字字面量类型、联合字面量类型、类型收窄。 | 字面量类型 Literal |
| 类型收窄 Narrowing | if/else/switch/typeof/instanceof等条件中类型自动收窄、never类型可达性分析。 | 类型收窄 narrowing |
| unique symbol | const sym: unique symbol = Symbol()创建唯一类型符号、用于常量作为类型键。 | unique symbol |