我在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
在被引用时未定义。但是我正在从其模块中导出它,并在使用它之前将其导入...所以应该对其进行定义。
我发现了其他类似的问题,这些问题询问的是未定义的枚举,但是它们似乎都在询问运行时。据我所知,这是一个编译时问题。
我看不到我在做什么错。我在其他地方导入其他类型没有问题。但是这个枚举根本不想工作。这是怎么回事,我该如何解决?
答案 0 :(得分:0)
好吧,这不是使它起作用的方法,但是this GitHub PR解释说ts-jest
不支持像这样工作的枚举。我已将所有用法更改为(例如)("both" as Handedness)
,并且可以使用。因此,这不是解释,而是一种解决方法。