我在 types.ts
中定义了一个枚举:
export enum Handedness {
Left,
Right,
Both,
}
export type State = {
count: number
handedness: Handedness
}
我在 state.ts
中初始化了一个对象:
import { State, Handedness } from './types'
export const initial: State = {
count: 0,
handedness: Handedness.Both
}
当我为此项目运行测试(通过 jest
)时,state.ts
生成错误 TypeError: Cannot read property 'Both' of undefined
,告诉我 Handedness
在被引用时没有定义。但是我在使用它之前从它的模块导出它并导入它...所以它应该被定义。
我发现其他类似的问题询问未定义的枚举,但他们似乎都在询问运行时。据我所知,这是一个编译时问题。
我不明白我会在这里做错什么。我在其他地方导入其他类型没有问题。但是这个枚举根本不想工作。这是怎么回事,我该如何解决?
最佳答案
好吧,这不是让它工作的方法,但是 this GitHub PR解释 ts-jest
将不支持像这样工作的枚举。我已将所有用途更改为(例如)("both"as Handedness)
并且它有效。所以,这不是一种解释,而是一种解决方法。
关于typescript - 编译时未定义的 TypeScript 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54310718/