enum ENUM_POSITION_TYPE {
LEFT = 1,
RIGHT = 2
}
// type PositionType = 1 | 2
type PositionType = ???
export let a1: PositionType = ENUM_POSITION_TYPE.RIGHT //correct
export let a2: PositionType = 1 as const //correct
export let a3: PositionType = 3 //typescript error
我不想编写这样的代码type PositionType = 1 | 2
,添加枚举时,我不想更改类型
答案 0 :(得分:0)
TypeScript不会跟踪Enum值的特定文字类型。当您看到以下内容也没有类型错误时,这将变得更加明显:
let x: typeof ENUM_POSITION_TYPE["LEFT"] = 3;
我建议采用以下方法
const ENUM_POSITION_TYPE = {
LEFT: 1,
RIGHT: 2
} as const;
type PositionType = typeof ENUM_POSITION_TYPE[keyof typeof ENUM_POSITION_TYPE];