Microsoft/TypeScript
View on GitHubType printing does not detect that a name is shadowed in the current scope
Open
#58,456 opened on May 7, 2024
BugDomain: Declaration EmitHelp Wanted
Repository metrics
- Stars
- (48,455 stars)
- PR merge metrics
- (Avg merge 6d 17h) (9 merged PRs in 30d)
Description
🔎 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