这是因为
types
模块不包括
汇编
通过ember cli类型脚本。纯类型声明可以很好地工作,因为它们在编译时被擦除。然而
enums have runtime representations, not just compile-time representations
与TypeScript中的几乎所有内容不同!(您有时可以使用
const enum
类型,但它们有自己的权衡。)
在任何情况下,因为ember cli typescript在默认情况下不包括
类型
编译目录-仅用于类型解析-结果是您可以将枚举用作
类型
但你不能用它们来真正创造价值,这主要违背了这一点。
最好的办法是
your-app/types/
对于仅声明存在于应用程序外部的类型,或在应用程序中没有运行时表示的常见类型,并将具有与之关联的运行时功能的类型放入
your-app/app/lib
。然后,您可以从任何模块中导出类型,并在整个应用程序中像正常情况一样重用它们。
或者,您可以添加
类型
到
tsconfig.json
的
"paths"
列表,但这可能会让其他开始使用您的应用程序的ember cli typescript用户感到惊讶!