TypeScript枚举访问返回类型';字符串';而不是keyof typeof Enum,但需要keyof typeof Enum而不是';一串
问题的最小示例:TypeScript枚举访问返回类型';字符串';而不是keyof typeof Enum,但需要keyof typeof Enum而不是';一串,typescript,enums,Typescript,Enums,问题的最小示例: enum EXAMPLE { FIRST, SECOND, } EXAMPLE[EXAMPLE[EXAMPLE.FIRST]]; // Error 根据这一回答: 除非我误读了,这应该是正确的 基于已编译的javascript,这个类型错误对我来说毫无意义,而基于我假定的枚举的内部类型,这也毫无意义 为什么枚举类型的键行为不一致?(即,为什么它们似乎被键入类似于Record&Record的内容,而不是Record&Record) 我可以构造一个伪枚举对象,
enum EXAMPLE {
FIRST,
SECOND,
}
EXAMPLE[EXAMPLE[EXAMPLE.FIRST]]; // Error
根据这一回答:
除非我误读了,这应该是正确的
基于已编译的javascript,这个类型错误对我来说毫无意义,而基于我假定的枚举的内部类型,这也毫无意义
为什么枚举类型的键行为不一致?(即,为什么它们似乎被键入类似于Record&Record
的内容,而不是Record&Record
)
我可以构造一个伪枚举对象,该对象的行为符合我的要求,但我更希望能够使用现有的语言功能并从中获益(简洁、智能感知等)
是否有一个很好的解决方案,或者我遗漏了什么?如果我没有弄错的话,我想你要问的是,“为什么结果是type
string
而不是type'FIRST'|'SECOND'
。我理解正确吗?答案可能是:1。TypeScript中的枚举是古怪的、不一致的,并且用例范围很窄。解决方法是使用不同的方法。@ShaunLuttin本质上是的。我使用Typescript的枚举越多,我就越意识到它们的限制性和不一致性。是否有一个好的polyfill或预处理器,或者我可以做些什么来让它们正确键入?我能写的任何自定义解决方案都比枚举{…vals}更详细,如果需要,我会这么做,但我希望能够保留语法框架如果我没有弄错,我想你要问的是,“为什么结果是typestring
而不是type'FIRST'|'SECOND'
。我理解正确吗?答案可能是:1。TypeScript中的枚举是古怪的、不一致的,并且用例范围很窄。解决方法是使用不同的方法。@ShaunLuttin本质上是的。我使用Typescript的枚举越多,我就越意识到它们的限制性和不一致性。是否有一个好的polyfill或预处理器,或者我可以做些什么来让它们正确键入?我可以编写的任何自定义解决方案都比enum{…vals}更详细,如果需要,我会这样做,但我希望能够保留语法