首页 > 解决方案 > 编译时未定义的 TypeScript 枚举

问题描述

我在中定义了一个枚举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在引用它时没有定义。但是我从它的模块中导出它并在使用它之前导入它......所以它应该被定义。

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

我看不出我在这里会做错什么。我在其他地方导入其他类型没有问题。但是这个枚举根本不想工作。这里发生了什么,我该如何解决?

标签: typescriptjestjs

解决方案


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


推荐阅读