Microsoft/TypeScript

Nested destructuring does not narrow dependent parameters

Open

#48,378 建立於 2022年3月22日

在 GitHub 查看
 (2 留言) (0 反應) (0 負責人)TypeScript (6,726 fork)batch import
BugDomain: check: Control FlowHelp Wanted

倉庫指標

Star
 (48,455 star)
PR 合併指標
 (平均合併 6天 17小時) (30 天內合併 9 個 PR)

描述

Bug Report

🔎 Search Terms

destructuring destructured dependent parameters nested control flow analysis

🕗 Version & Regression Information

  • This changed between versions 4.5.5 and 4.6

⏯ Playground Link

Playground link with relevant code

💻 Code

declare const Tuple: [true, string] | [false, number];
const [[val1, val2]] = [Tuple];
if (val1) {
	val2 // string | number
}

🙁 Actual behavior

TypeScript does not correctly narrow val2 when narrowing val1 if it's in any type of nested destructuring.

🙂 Expected behavior

I expect it to behave the same as directly destructuring the object.

貢獻者指南