Microsoft/TypeScript
Voir sur GitHubJS output contains imports only used in types when `emitDecoratorMetadata: true`
Open
#42 301 ouverte le 12 janv. 2021
BugDomain: DecoratorsHelp Wanted
Métriques du dépôt
- Stars
- (48 455 stars)
- Métriques de merge PR
- (Merge moyen 6j 17h) (9 PRs mergées en 30 j)
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