Microsoft/TypeScript
Auf GitHub ansehen`using` transform throws when a for body binding shadows the for head binding
Open
#61.714 geöffnet am 16. Mai 2025
BugDomain: API: TransformsFix AvailableHelp Wanted
Repository-Metriken
- Stars
- (48.455 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 6T 17h) (9 gemergte PRs in 30 T)
Beschreibung
🔎 Search Terms
explicit resource management, using, await using, loop initializer, Symbol.dispose, Symbol.asyncDispose, iteration, shadows
🕗 Version & Regression Information
- This changed between versions ______ and _______
- This changed in commit or PR _______
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about https://github.com/microsoft/TypeScript/wiki/FAQ#common-bugs-that-arent-bugs
- I was unable to test this on prior versions because _______
⏯ Playground Link
💻 Code
class Foo {}
for (using foo of []) {
const foo = new Foo();
}
🙁 Actual behavior
The transformed output throws "redeclaration of const foo "
🙂 Expected behavior
The transformed output should not throw.
Additional information about the issue
Babel is also affected by this issue: https://github.com/babel/babel/issues/17318. We plan to wrap the for body within a new block when it contains shadowed binding.