Microsoft/TypeScript
Type printing does not detect that a name is shadowed in the current scope
Aperta
#58.456 aperta il 7 mag 2024
BugDomain: Declaration EmitHelp Wanted
Metriche repository
- Star
- (108.860 stelle)
- Metriche merge PR
- (Metriche PR in attesa)
Descrizione
🔎 Search Terms
global shadowed declarations
🕗 Version & Regression Information
- This is the behavior in every version I tried, and I reviewed
⏯ Playground Link
💻 Code
// @strict: true
// @declaration: true
// @target: es2020
// @filename: a.ts
export const o = {[Symbol.iterator]: 1}
// @filename: b.ts
import { o } from "./a";
export class Symbol { }
export const g = o;
🙁 Actual behavior
The typeof of g is { [Symbol.iterator]: number; }. This leads to an incorrect declaration since Symbol is shadowed in the current scope
🙂 Expected behavior
The typeof of g is { [globalThis.Symbol.iterator]: number; }.
Additional information about the issue
No response