Microsoft/TypeScript
GitHub ã§èŠã`using` transform throws when a for body binding shadows the for head binding
Open
#61,714 opened on 2025幎5æ16æ¥
BugDomain: API: TransformsFix AvailableHelp Wanted
Repository metrics
- Stars
- Â (48,455 stars)
- PR merge metrics
-  (å¹³åããŒãž 6d 17h) (30d ã§ 9 merged PRs)
説æ
ð 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.