TypeScript的字符串字面量类型
什么是 TypeScript 的字符串字面量类型?
字符串字面量类型(String Literal Types)是指可以将变量的类型限定为某个特定的字符串字面量。例如:
let click: 'click';
此时,变量 click 只能被赋值为'click',否则会报错。
如果给字符串字面量类型变量赋予其他值会怎样?
如果尝试将除 'click' 以外的字符串赋值给 click:
// 编译错误
click = 'dblclick';
TypeScript 编译器会报错:
Type ‘“dblclick”’ is not assignable to type ‘“click”’.
字符串字面量类型有什么实际用途?
它可以用来限制变量的取值范围,提升类型安全。如,限制事件类型只能是某几个特定的字符串。
如何结合联合类型(Union Types)使用字符串字面量类型?
可以用联合类型(后续会介绍)将多个字符串字面量类型组合起来,限定变量只能取这些值之一:
let mouseEvent: 'click' | 'dblclick' | 'mouseup' | 'mousedown';
mouseEvent = 'click'; // 有效
mouseEvent = 'dblclick'; // 有效
mouseEvent = 'mouseup'; // 有效
mouseEvent = 'mousedown'; // 有效
mouseEvent = 'mouseover'; // 编译错误
如果字符串字面量类型在多个地方用到,如何避免重复?
可以使用类型别名(type alias)来简化代码:
type AsanMouseEvent = 'click' | 'dblclick' | 'mouseup' | 'mousedown';
let mouseEvent: AsanMouseEvent;
let anotherEvent: AsanMouseEvent;
这样可以复用类型定义,减少冗余。
-
如果你觉得我的工作对你有帮助,可以通过分享这篇文字或者关注同名公众号来支持我,你的支持是我持续创作的最大动力:
![image]()
-
转载以及引用请注明原文链接。
-
本博客所有文章除特别声明外,均采用CC 署名-非商业使用-相同方式共享 许可协议。

TypeScript 的字符串字面量类型以及简单用法

浙公网安备 33010602011771号