TypeScript · Middle · Frage 26 von 75
Wie behandelt TypeScript den Operator in beim Eingrenzen?
type Fish = { swim(): void };
type Bird = { fly(): void };
function move(a: Fish | Bird) {
if ('swim' in a) a.swim(); else a.fly();
}- 1Es prüft, dass
aein Array ist, das den String'swim'enthält - 2Es grenzt die Union auf die Mitglieder ein, die eine Eigenschaft
swimhaben - 3Der Operator
inbeeinflusst Typen nicht
Antwort zeigen
Richtige Antwort: Es grenzt die Union auf die Mitglieder ein, die eine Eigenschaft swim haben
Erklärung
TS unterstützt Eingrenzung über typeof, instanceof, in, Gleichheitsprüfungen, Truthiness und Diskriminanten. Im else bleibt Bird. Bei Netzwerkdaten sind solche Prüfungen Teil der Validierung zur Laufzeit.