typescript - 编译时未定义的 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
在引用它时没有定义。但是我从它的模块中导出它并在使用它之前导入它......所以它应该被定义。
我发现其他类似的问题询问未定义的枚举,但它们似乎都在询问运行时。据我所知,这是一个编译时问题。
我看不出我在这里会做错什么。我在其他地方导入其他类型没有问题。但是这个枚举根本不想工作。这里发生了什么,我该如何解决?
解决方案
好吧,这不是让它工作的方法,但是这个 GitHub PR解释ts-jest
说不支持像这样工作的枚举。我已将所有用途更改为(例如)("both" as Handedness)
并且它有效。所以,这不是解释,而是一种解决方法。
推荐阅读
- mongodb - Mongodb版本不匹配问题3.6到4.0升级
- ios - Xcode 10 中没有这样的模块“Alamofire”
- flutter - 如何降级你的 Flutter SDK 版本?
- css - 在 React 中从 dangerouslySetInnerHTML 修改 HTML 标签
- vb.net - 使用 VB.NET 的工具提示内的 Datagrid
- ios - 在 UICollectionView 单元格中使用子视图控制器时如何正确管理内存?
- android - 多个检查项发送参数
- packer - Packer:标签和快照标签构建器选项之间有什么区别?
- rasa-nlu - 如何在训练数据中使用 regex_features
- ios - 如何使用 SwiftUI 获得动态视图列表