TypeScript函数与类型系统全解析
1. 枚举类型的使用与风险
在TypeScript中,枚举类型使用时存在一些规则和风险。为了保证类型安全,最好只使用字符串值的枚举。例如:
const enum Flippable {
Burger = 'Burger',
Chair = 'Chair',
Cup = 'Cup',
Skateboard = 'Skateboard',
Table = 'Table'
}
function flip(f: Flippable) {
return 'flipped it'
}
flip(Flippable.Chair) // 'flipped it'
flip(Flippable.Cup) // 'flipped it'
flip(12) // Error TS2345: Argument of type '12' is not
// assignable to parameter of type 'Flippable'.
flip('Hat') // Error TS2345: Argument of type '"Hat"' is not
// assignable to parameter of type 'Flippable'.
只要枚举中有一个数字值,整个枚举就会变得不安全。因此,建议尽量避免使用枚举,TypeScr