TypeScript · Middle · Pytanie 26 z 75

Jak TypeScript traktuje operator in przy zawężaniu?

type Fish = { swim(): void };
type Bird = { fly(): void };
function move(a: Fish | Bird) {
  if ('swim' in a) a.swim(); else a.fly();
}

Wyjaśnienie

TS obsługuje zawężanie przez typeof, instanceof, in, porównania równości, prawdziwość i dyskryminatory. W else zostaje Bird. Dla danych z sieci takie sprawdzenia są częścią walidacji w runtime.

Do poczytania

Błąd w pytaniu

TypeScript · Middle · pytanie 26

Sprawdź się

Rozwiąż test TypeScript · Middle: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test