编译时未定义的TypeScript枚举

时间:2019-01-22 14:44:35

标签: typescript jestjs

我在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在被引用时未定义。但是我正在从其模块中导出它,并在使用它之前将其导入...所以应该对其进行定义。

我发现了其他类似的问题,这些问题询问的是未定义的枚举,但是它们似乎都在询问运行时。据我所知,这是一个编译时问题。

我看不到我在做什么错。我在其他地方导入其他类型没有问题。但是这个枚举根本不想工作。这是怎么回事,我该如何解决?

1 个答案:

答案 0 :(得分:0)

好吧,这不是使它起作用的方法,但是this GitHub PR解释说ts-jest不支持像这样工作的枚举。我已将所有用法更改为(例如)("both" as Handedness),并且可以使用。因此,这不是解释,而是一种解决方法。