说我有这样的枚举:
function foo(c: Color) {
return c
}
然后我定义了一个带有这个枚举类型参数的函数:
red
除非另有说明,否则枚举成员green
,blue
和foo(Color.red)
// or
foo(0)
将分别采用值0,1和2。所以我可以像这样使用我的函数:
foo('bar')
但像foo(9999)
这样的东西会失败。
到目前为止,这么好。但我发现Color
编译得很好,这不是我所期望的,因为9999不等于foo
的任何成员。
实际上,任何数字都可以传递给position
,包括浮点数,编译器没有问题。
有没有办法让enum成员获得类型安全性,以便我只允许传递枚举中的值?