TypeScript · Senior · Pytanie 1 z 75
Czy przy strictFunctionTypes można przypisać (x: Dog) => void do zmiennej typu (x: Animal) => void?
- ✓Poprawna odpowiedź: Nie: parametry funkcji są sprawdzane kontrawariantnie
- 2Tak: parametry funkcji są sprawdzane kowariantnie
- 3Tak, ale tylko jeśli
Dogjest klasą, a nie interfejsem
Wyjaśnienie
Zmienna obiecuje przyjąć dowolne Animal, a funkcja umie obsłużyć tylko Dog - wywołanie z Cat by ją zepsuło. Dlatego podtypowanie po parametrze działa w odwrotną stronę: (x: Animal) => void można przypisać tam, gdzie oczekiwane jest (x: Dog) => void, ale nie odwrotnie.