-
Notifications
You must be signed in to change notification settings - Fork 13k
Closed
Labels
BugA bug in TypeScriptA bug in TypeScriptDomain: tslib and Helper FunctionsFix AvailableA PR has been opened for this issueA PR has been opened for this issue
Milestone
Description
π Search Terms
importHelpers, module, preserve
π Version & Regression Information
Fails with TS2354
in versions 5.4.x.
Generates invalid code in >= 5.5 including nightly.
β― Playground Link
π» Code
function ExampleDecorator(): any {}
@ExampleDecorator()
export class A {}
π Actual behavior
import * as tslib_1 from "tslib";
function ExampleDecorator() { }
let A = (() => {
let _classDecorators = [ExampleDecorator()];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
var A = class {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
A = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
__runInitializers(_classThis, _classExtraInitializers);
}
};
return A = _classThis;
})();
export { A };
π Expected behavior
import * as tslib_1 from "tslib";
function ExampleDecorator() { }
let A = (() => {
let _classDecorators = [ExampleDecorator()];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
var A = class {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
A = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
tslib_1.__runInitializers(_classThis, _classExtraInitializers);
}
};
return A = _classThis;
})();
export { A };
Additional information about the issue
The namespace import identifier for tslib appears to not be used when generating the helper calls.
The baseline reference also appears to demonstrate the issue:
import * as tslib_1 from "tslib"; | |
function foo(args) { | |
const { bar } = args, extraArgs = __rest(args, ["bar"]); | |
return extraArgs; | |
} | |
module.exports = foo; |
Metadata
Metadata
Assignees
Labels
BugA bug in TypeScriptA bug in TypeScriptDomain: tslib and Helper FunctionsFix AvailableA PR has been opened for this issueA PR has been opened for this issue