TypeScript · Senior · Frage 27 von 75
Was änderte sich in TS 5.5 an der Inferenz von Typprädikaten?
const nums = [1, null, 2].filter(x => x !== null);- 1
filterliefert für gemischte Arrays jetzt immernever[] - 2TS leitet das Prädikat
x is numberab, also istnumseinnumber[] - 3Typprädikate wurden zugunsten von Assertion-Funktionen entfernt
Antwort zeigen
Richtige Antwort: TS leitet das Prädikat x is number ab, also ist nums ein number[]
Erklärung
Früher war nums ein (number | null)[], und man musste (x): x is number => x !== null schreiben. Jetzt leitet der Compiler für einfache Funktionen ein Prädikat ab, wenn die Rückgabe von true den Typ wirklich eingrenzt.