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();
}
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.

Zum Weiterlesen

Fehler in der Frage

TypeScript · Middle · Frage 26

Teste dich selbst

Mach den Test TypeScript · Middle: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen