typescript - 如何在 Typescript 中正确定义全局枚举
问题描述
我无法理解在全局定义枚举时缺少什么。
常量.ts
enum CREEP_ROLE {
HARVESTER = 0,
BUILDER = 1,
}
main.ts
import './constants'
const test = CREEP_ROLE.HARVESTER;
这是 typescript 编译器将此代码编译成的内容:
var CREEP_ROLE$1;
(function (CREEP_ROLE) {
CREEP_ROLE[CREEP_ROLE["HARVESTER"] = 0] = "HARVESTER";
CREEP_ROLE[CREEP_ROLE["BUILDER"] = 1] = "BUILDER";
})(CREEP_ROLE$1 || (CREEP_ROLE$1 = {}));
//# sourceMappingURL=constants.js.map
const test = CREEP_ROLE.HARVESTER;
当我运行生成的文件时,我得到ReferenceError: CREEP_ROLE is not defined
. 我错过了什么?
我的 tslint:
{
"compilerOptions": {
"module": "esnext",
"lib": ["esnext"],
"target": "es2017",
"moduleResolution": "Node",
"outDir": "dist",
"baseUrl": "src/",
"sourceMap": true,
"strict": true,
"experimentalDecorators": true,
"noImplicitReturns": true,
"allowSyntheticDefaultImports": true,
"allowUnreachableCode": false
},
"exclude": [
"node_modules"
]
}
解决方案
导出您的枚举:
export enum CREEP_ROLE {
HARVESTER = 0,
BUILDER = 1,
}
然后像这样导入:
import {CREEP_ROLE} from './constants';
推荐阅读
- python - BeautifulSoup 中 find() 和 find_all() 方法的工作原理
- python - 在在线 Python 平台中运行 Webdriver(Jupyter lab online、Google Colab 等)
- python - 八皇后拼图-对角线图案
- django - 如何根据用户选择更改语言?
- sql - MySQL分页的用户排名列表以及排名
- reactjs - 使用 JEST 测试服务器时如何访问 process.env 中的 RAZZLE 变量?
- mudblazor - 即使组件填充了数据,MudBlazor 的自动完成功能也不起作用
- android - 如何使用 AppCompatActivity 使 Actionbar 的选项菜单的波纹效果不超过圆角边界?
- pandas - groupby.median() 和 groupby.transform('median') 有什么区别
- ruby-on-rails - 【Rails】如何在route.rb中写入子目录路径?