如何导入枚举

新手上路,请多包涵

我创建了一个枚举,但在 VS15 中导入和使用枚举时遇到问题。

这是 enums.ts 中包含的枚举:

 enum EntityStatus {
     New = 0,
     Active = 1,
     Archived = 2,
     Trashed = 3,
     Deleted = 4
}

Visual Studio 甚至无需导入即可看到此枚举,因此不会给出编译时错误。但是在运行时,会抛出一个错误

 Cannot read property 'Archived' of undefined.

所以现在我尝试像导入其他类一样导入它:

  import {EntityStatus} from "../../core/enums";

Visual Studio 现在给出编译时错误:

  "...enums is not a module ..."

那么如何导入枚举呢?

原文由 Greg Gum 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

我错过了 export 关键字:

  export enum EntityStatus {
      New = 0,
      Active = 1,
      Archived = 2,
      Trashed = 3,
      Deleted = 4
 }

然后它按预期工作。

原文由 Greg Gum 发布,翻译遵循 CC BY-SA 3.0 许可协议

当您碰巧在 TypeScript 声明文件之一( *.d.ts )中定义枚举时,您将得到相同的 Cannot read property 'Foo' of undefined. 运行时错误,因为这些文件不会传递到 JavaScript 中。

可以在 此处 找到有关示例应用程序的更多详细信息。

原文由 luk355 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进