Microsoft/TypeScript
Voir sur GitHubNarrow subtype-reduction-prone unions to their narrowest constituent
Open
#47 731 ouverte le 3 févr. 2022
BugDomain: check: Control FlowHelp Wanted
Métriques du dépôt
- Stars
- (48 455 stars)
- Métriques de merge PR
- (Merge moyen 6j 17h) (9 PRs mergées en 30 j)
Description
Bug Report
Type narrowing doesn't seem to take into account an assignment I made to ensure the variable has the right type.
Maybe related? https://github.com/microsoft/TypeScript/issues/43584#issuecomment-816932485
🔎 Search Terms
type narrowing assignment
🕗 Version & Regression Information
4.5.4
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about "type narrowing"
⏯ Playground Link
💻 Code
declare let a: object | any[] | undefined
if (a === undefined) {
a = [] // I expect this line to have TS understand that a is any[] from now on
} else if (!Array.isArray(a)) {
throw new Error()
}
[...a] // complains here because a is object | any[]
🙁 Actual behavior
a has type object | any[]
🙂 Expected behavior
a to have type any[]