Základy zužování typů v TypeScriptu
Kontroly typeof, in, diskriminanty a predikáty zpřesní široký statický typ uvnitř konkrétní větve.
Jak to funguje
Union typ popisuje několik možných hodnot a kontrola typeof dá TypeScriptu podklad pro zpřesnění typu v konkrétní větvi; podobně funguje kontrola značky objektu, zatímco přetypování nedůvěryhodného JSON pomocí as pouze změní předpoklad kompilátoru a nenahradí ověření za běhu.
function label(value: string | number) {
if (typeof value === "string") {
return value.trim();
}
return value.toFixed(2);
}Přečíst dokumentaciČastý omyl
Typová aserce neověřuje data za běhu.
Krátké procvičení
1. Který operátor zužuje primitiva?
typeof
2. Co určuje člena diskriminovaného sjednocení?
Sdílená literální značka.
3. Ověřuje `as` vstup?
Ne.