【发布时间】:2018-11-27 09:41:33
【问题描述】:
假设我有一个数字枚举:
const enum EStatus {
Busy = 0,
Available = 1,
Away = 2
}
当我执行以下操作时,TypeScript 不会抱怨:
const status: EStatus = 4
但是,如果我有一个字符串枚举:
const enum EDayOfWeekend {
Saturday = "Saturday",
Sunday = "Sunday"
}
然后,当我尝试执行以下操作时,TypeScript 会抱怨:
const dayOfWeekend: EDayOfWeekend = "Tuesday"
我本来希望 TypeScript 与两者都允许或两者都不允许一致。 IMO 它应该不允许使用除定义的值以外的任何东西,或者更好地强制您只能使用枚举本身来初始化变量,例如
const dayOfWeekend = EDayOfWeekend.Saturday
我很想知道为什么 TypeScript 中存在这种不一致,以及它是否是设计使然。
【问题讨论】:
标签: typescript enums