在TypeScript中,字面量类型和联合类型是常用的类型构造方式,用于更精确地描述变量的取值范围。
下面对字面量类型和联合类型的具体使用进行详细说明: 字面量类型: 字面量类型表示一个特定的字面量值,如字符串、数字、布尔值或对象。通过将字面量值直接作为类型,可以限制变量只能取特定的值。
let status: 'success' | 'error';
status = 'success'; // 合法
status = 'error'; // 合法
status = 'pending'; // 不合法,只能取 'success' 或 'error'
上述例子中,status的类型被限制为 'success' 或 'error',只能赋值为这两个特定的字面量值,其他值是不合法的。
联合类型: 联合类型表示一个变量可以取多个类型中的任意一种。使用 | 符号将多个类型联合在一起。
let result: number | string;
result = 10; // 合法
result = 'success'; // 合法
result = true; // 不合法,只能是 number 或 string 类型
在上述例子中,result 可以是 number 类型或 string 类型,可以根据需要赋予不同的值。
联合类型和字面量类型可以结合使用,以进一步缩小变量的取值范围:
let eventType: 'click' | 'keydown' | 'scroll';
eventType = 'click'; // 合法
eventType = 'keydown'; // 合法
eventType = 'mouseover'; // 不合法,只能是 'click'、'keydown' 或 'scroll'
在上述例子中,eventType 的类型是 'click' | 'keydown' | 'scroll',只能取这三个特定的字符串字面量值。
字面量类型和联合类型的使用可以帮助我们在编写类型安全的代码时更精确地定义变量的取值范围,提供更好的类型检查和编译时错误提示。