Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TypeScript枚举访问返回类型';字符串';而不是keyof typeof Enum,但需要keyof typeof Enum而不是';一串_Typescript_Enums - Fatal编程技术网

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}更详细,如果需要,我会这么做,但我希望能够保留语法框架如果我没有弄错,我想你要问的是,“为什么结果是type
string
而不是type
'FIRST'|'SECOND'
。我理解正确吗?答案可能是:1。TypeScript中的枚举是古怪的、不一致的,并且用例范围很窄。解决方法是使用不同的方法。@ShaunLuttin本质上是的。我使用Typescript的枚举越多,我就越意识到它们的限制性和不一致性。是否有一个好的polyfill或预处理器,或者我可以做些什么来让它们正确键入?我可以编写的任何自定义解决方案都比enum{…vals}更详细,如果需要,我会这样做,但我希望能够保留语法