Skip to content

tslib is not being imported for __importDefault or __importStar if another helper is not used #21560

Closed
@HitalloExiled

Description

@HitalloExiled

TypeScript Version: 2.8.0-dev.20180201

Code using only __importDefault

import path from "path";

console.log(path.resolve(__dirname, "../"));

export class Foo { }

//export class Bar extends Foo { }

Generated

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var path_1 = __importDefault(require("path"));
console.log(path_1.default.resolve(__dirname, "../"));
var Foo = /** @class */ (function () {
    function Foo() {
    }
    return Foo;
}());
exports.Foo = Foo;
//export class Bar extends Foo { }

Code using __importDefault and __extends

import path from "path";

console.log(path.resolve(__dirname, "../"));

export class Foo { }

export class Bar extends Foo { }

Generated

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var path_1 = tslib_1.__importDefault(require("path"));
console.log(path_1.default.resolve(__dirname, "../"));
var Foo = /** @class */ (function () {
    function Foo() {
    }
    return Foo;
}());
exports.Foo = Foo;
var Bar = /** @class */ (function (_super) {
    tslib_1.__extends(Bar, _super);
    function Bar() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    return Bar;
}(Foo));
exports.Bar = Bar;

tsconfig

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "importHelpers": true,
    "noEmitHelpers": true,
    "strict": true,
    "esModuleInterop": true
  }
}

Expected behavior:
Import tslib when using __importDefault or __importStar helper.

Actual behavior:
Not importing when only __importDefault or __importStar are used.

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptFixedA PR has been merged for this issue

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions