devShark · Rychlé vysvětlení

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.

Procvičit v kvízu

Další témata