Closed
Description
TypeScript Version: 2.8.1 and 2.9.0-dev.20180418
Search Terms: const enum import export preserveConstEnums
Code
ConstEnum.ts
const enum MyConstEnum {
Foo,
Bar
};
export { MyConstEnum };
ImportExport.ts
import { MyConstEnum } from './MyConstEnum';
export default MyConstEnum;
ReExport.ts
export { MyConstEnum as default } from './MyConstEnum';
Compile the above using
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"preserveConstEnums": true
}
}
Expected behavior:
Both ImportExport.ts and ReExport.ts compile to
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var MyConstEnum_1 = require("./MyConstEnum");
exports.default = MyConstEnum_1.MyConstEnum;
Actual behavior:
ReExport.js is as expected, but ImportExport.js is:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = MyConstEnum_1.MyConstEnum;
i.e. we are missing
var MyConstEnum_1 = require("./MyConstEnum");
This results in a runtime error due to MyConstEnum_1
being undefined
.
Related Issues:
#18644