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();
}- ✓Poprawna odpowiedź: Zawęża unię do członów, które mają właściwość
swim - 2Operator
innie wpływa na typy - 3Sprawdza, czy
ajest tablicą zawierającą string'swim'
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.