如何在枚举文件中强制枚举成员作为参数类型

时间:2017-03-01 17:39:45

标签: typescript enums

说我有这样的枚举:

function foo(c: Color) {
  return c
}

然后我定义了一个带有这个枚举类型参数的函数:

red

除非另有说明,否则枚举成员greenbluefoo(Color.red) // or foo(0) 将分别采用值0,1和2。所以我可以像这样使用我的函数:

foo('bar')

但像foo(9999)这样的东西会失败。

到目前为止,这么好。但我发现Color编译得很好,这不是我所期望的,因为9999不等于foo的任何成员。

实际上,任何数字都可以传递给position,包括浮点数,编译器没有问题。

有没有办法让enum成员获得类型安全性,以便我只允许传递枚举中的值?

0 个答案:

没有答案