Microsoft/TypeScript
在 GitHub 查看`using` transform throws when a for body binding shadows the for head binding
Open
#61,714 创建于 2025年5月16日
BugDomain: API: TransformsFix AvailableHelp Wanted
仓库指标
- Star
- (48,455 star)
- PR 合并指标
- (平均合并 6天 17小时) (30 天内合并 9 个 PR)
描述
🔎 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.