TypeScript · Senior · Frage 1 von 75
Kann man mit strictFunctionTypes (x: Dog) => void einer Variablen vom Typ (x: Animal) => void zuweisen?
- 1Ja: Funktionsparameter werden kovariant geprüft
- 2Nein: Funktionsparameter werden kontravariant geprüft
- 3Ja, aber nur wenn
Dogeine Klasse und kein Interface ist
Antwort zeigen
Richtige Antwort: Nein: Funktionsparameter werden kontravariant geprüft
Erklärung
Die Variable verspricht, jedes Animal anzunehmen, die Funktion kann aber nur Dog verarbeiten - ein Aufruf mit Cat würde scheitern. Deshalb verläuft die Untertypbeziehung beim Parameter umgekehrt: (x: Animal) => void darf dort stehen, wo (x: Dog) => void erwartet wird, aber nicht umgekehrt.