ivogabe / gulp-typescript

A TypeScript compiler for gulp with incremental compilation support.
MIT License
831 stars 129 forks source link

preserveConstEnums param not work #598

Closed vnoder closed 5 years ago

vnoder commented 5 years ago

my gulp file

const tsProject = ts.createProject(ts_config_path, {
    isolatedModules: true,
    preserveConstEnums: false,
    typescript: typescript
});

my tsconfig.json

{
    "compilerOptions": {
        "module": "commonjs",
        "target":"es3",
        "noImplicitAny": false,
        "removeComments": true,
        "preserveConstEnums": false,
        "sourceMap": false,
    },
    "exclude": [
        "node_modules",
    ]
}

Code

const enum ITEM_TYPE {
    PRECIOUS = 1,
    SECRET,
    BADGE,
    SPIRIT,
    MAX_VALUE = SPIRIT,
}

var time = 0;
if (time == ITEM_TYPE.BADGE) {
    console.log('right');
}

gulp-typescript output

var ITEM_TYPE;
(function (ITEM_TYPE) {
    ITEM_TYPE[ITEM_TYPE["PRECIOUS"] = 1] = "PRECIOUS";
    ITEM_TYPE[ITEM_TYPE["SECRET"] = 2] = "SECRET";
    ITEM_TYPE[ITEM_TYPE["BADGE"] = 3] = "BADGE";
    ITEM_TYPE[ITEM_TYPE["SPIRIT"] = 4] = "SPIRIT";
    ITEM_TYPE[ITEM_TYPE["MAX_VALUE"] = 4] = "MAX_VALUE";
})(ITEM_TYPE || (ITEM_TYPE = {}));
var time = 0;
if (time == ITEM_TYPE.BADGE) {
    console.log('right');
}

expect output

var time = 0;
if (time == 3 /* BADGE */) {
    console.log('right');
}
vnoder commented 5 years ago

my typescript version is 3.0.3

ivogabe commented 5 years ago

The option preserveConstEnums cannot be used with isolatedModules on. You'll need to remove one of those settings.