防止枚举参数接受打字稿中的数值

时间:2018-08-17 05:34:52

标签: typescript

以下代码不产生警告:

export enum UnitKindEnum {
  UNIT1,
  UNIT2,
}

function func(p: UnitKindEnum) {
    console.log(p);
}

func(UnitKindEnum.UNIT1)
func(-10)

如何强制该函数仅接受枚举类型?

1 个答案:

答案 0 :(得分:0)

我知道的唯一解决方案是使用字符串枚举:

export enum UnitKindEnum {
  UNIT1 = "1",
  UNIT2 = "2",
}

function func(p: UnitKindEnum) {
    console.log(p);
}

func(UnitKindEnum.UNIT1)
func("1")

但是,这有点像黑客入侵。