在TypeScript中,字面量类型允许我们指定一个变量只能是特定的字面量值。这在某些场景下非常有用,可以增强代码的可读性和类型安全性。
以下是一些字面量类型的示例:
1. 字符串字面量类型:
typescript
let status: 'success' | 'error' | 'pending';
status = 'success'; // 合法
status = 'error'; // 合法
status = 'pending'; // 合法
status = 'in progress'; // 错误,只能是 'success' | 'error' | 'pending' 中的一个
2. 数字字面量类型:
```
typescript
let age: 18 | 21 | 30;
age = 18; // 合法
age = 21; // 合法
age = 30; // 合法
age = 25; // 错误,只能是 18 | 21 | 30 中的一个
```
3. 布尔字面量类型:
```
typescript
let isTrue: true;
isTrue = true; // 合法
isTrue = false; // 错误,只能是 true
```4. 枚举字面量类型:
typescript
enum Direction {
Up = 'UP',
Down = 'DOWN',
Left = 'LEFT',
Right = 'RIGHT'
}
let direction: Direction.Up | Direction.Down;
direction = Direction.Up; // 合法
direction = Direction.Down; // 合法
direction = Direction.Left; // 错误,只能是 Direction.Up 或 Direction.Down 中的一个
```
联合类型
概念:将多个类型合并为一个类型对变量进行注解
解释:|
(竖线)在 TS 中叫做联合类型,即:由两个或多个其他类型组成的类型,表示可以是这些类型中的任意一种
let arr: (number | string)[] = [1, 'a', 3, 'b']
通过使用字面量类型,可以在类型系统中明确指定变量的取值范围,从而提高代码的可读性和类型安全性。字面量类型通常与联合类型结合使用,以创建更具体的类型约束。