我正在尝试使用Typescript本质上使用模式写入json数据,因此我需要Typescript编译器将枚举编译为js输出中的数字,但我无法使用它。
我已经尝试了很多事情,这篇文章与我遇到的问题类似,但是我没有使用awesome-typescript-loader,我也尝试了所有此堆栈溢出文章,但没有任何乐趣。我的ts-config在下面
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": false,
"removeComments": true,
"preserveConstEnums": false,
"sourceMap": false
},
"include": [
"src/**/*"
]
}
我只是tsc
在根目录的命令行中调用,它编译所有内容,但枚举被编译为MyEnum_1.MyEnum.FirstValue
。我尝试过的其他东西;
我正在运行tsc -v 3.6.4,并且没有足够的想法,有人遇到过类似的问题吗?
编辑:以下是我要导入的枚举类型的示例
export enum MyEnum {
Undefined,
FirstValue,
SecondValue,
ThirdValue
}
编辑:我的打字稿文件的一个例子是...
import { MyEnum } from "../../src/models/MyEnum";
import { ItemType } from "../../src/models/ItemType";
var item: ItemType = {
"id": "00000000-0000-0000-0000-000000000000",
"value": MyEnum.FirstValue
}
我希望这可以编译为...
"use strict";
exports.__esModule = true;
var MyEnum_1 = require("../../src/models/MyEnum");
var ItemType_1 = require("../../src/models/ItemType");
var item = {
"id": "00000000-0000-0000-0000-000000000000",
"value": 1
};
相反,它编译为;
"use strict";
exports.__esModule = true;
var MyEnum_1 = require("../../src/models/MyEnum");
var ItemType_1 = require("../../src/models/ItemType");
var item = {
"id": "00000000-0000-0000-0000-000000000000",
"value": MyEnum_1.MyEnum.FirstValue
};
只要枚举编译为数字,我几乎不在乎它如何编译。
您正在寻找const枚举:
export const enum MyEnum {
Undefined,
FirstValue,
SecondValue,
ThirdValue
}
var item = {
"id": "00000000-0000-0000-0000-000000000000",
"value": MyEnum.FirstValue
}
编译为
var MyEnum;
(function (MyEnum) {
// stuff
})(MyEnum || (MyEnum = {}));
var item = {
"id": "00000000-0000-0000-0000-000000000000",
"value": 1 /* FirstValue */
};
并且如果您想完全跳过枚举声明,也将其设置为环境:
export declare const enum MyEnum {
...
}
var item = {
"id": "00000000-0000-0000-0000-000000000000",
"value": MyEnum.FirstValue
}
给公正
var item = {
"id": "00000000-0000-0000-0000-000000000000",
"value": 1 /* FirstValue */
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句