Microsoft/TypeScript
View on GitHubJS output contains imports only used in types when `emitDecoratorMetadata: true`
Open
#42,301 opened on Jan 12, 2021
BugDomain: DecoratorsHelp Wanted
Description
Bug Report
๐ Search Terms
- emitDecoratorMetadata require
- emitDecoratorMetadata import
๐ Version & Regression Information
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about 3.3.3, 4.1.3
โฏ Playground Link
Playground link with relevant code
๐ป Code
import * as vscode from 'vscode';
function LogMethod(
target: any,
propertyKey: string | symbol,
descriptor: PropertyDescriptor
) {
console.log(target);
console.log(propertyKey);
console.log(descriptor);
}
class Demo {
@LogMethod
public foo(bar: vscode.Memento) {
// do nothing
}
}
const demo = new Demo();
๐ Actual behavior
The output contains const vscode = __importStar(require("vscode")); when emitDecoratorMetadata: true but not when emitDecoratorMetadata: false
๐ Expected behavior
As the type of bar as nothing to do with the compiled JS, the import of vscode should not exist regardless of the value of emitDecoratorMetadata