TS const 断言:锁定字面量类型
掌握 as const 断言,创建只读的精确字面量类型。 · 难度:入门 · +15XP
const 断言的概念
const 断言(as const)是 TypeScript 3.4 引入的特性,它告诉编译器将表达式推断为最具体的字面量类型,并且所有属性都变为只读。这在创建常量配置、枚举替代方案时非常有用。
主要效果
- 字面量类型不会被拓宽(如 'hello' 保持为 'hello' 而非 string)
- 数组变为只读元组
- 对象属性变为只读
代码示例
const DIRECTIONS = ['up', 'down', 'left', 'right'] as const;
// 类型: readonly ['up', 'down', 'left', 'right']
type Direction = typeof DIRECTIONS[number]; // 'up' | 'down' | 'left' | 'right'| 场景 | 没有 as const | 使用 as const |
|---|---|---|
| 字符串变量 | string | 字面量类型 |
| 数组 | string[] | readonly 元组 |
| 对象 | 属性可写 | 属性只读 |
练习提示:使用 as const 定义一个颜色配置对象,并从中提取颜色名称的联合类型。