防止枚举参数接受Typescript中的数值

防止枚举参数接受Typescript中的数值,typescript,Typescript,以下代码不产生任何警告: export enum UnitKindEnum { UNIT1, UNIT2, } function func(p: UnitKindEnum) { console.log(p); } func(UnitKindEnum.UNIT1) func(-10) 如何强制函数只接受枚举类型?我知道的唯一解决方案是使用字符串枚举: export enum UnitKindEnum { UNIT1 = "1", UNIT2 = "2", } fun

以下代码不产生任何警告:

export enum UnitKindEnum {
  UNIT1,
  UNIT2,
}

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

func(UnitKindEnum.UNIT1)
func(-10)

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

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

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

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

func(UnitKindEnum.UNIT1)
func("1")
然而,这感觉有点像黑客