TypeScript · Senior · Запитання 1 з 75
Чи можна за strictFunctionTypes присвоїти (x: Dog) => void змінній типу (x: Animal) => void?
- ✓Правильна відповідь: Ні: параметри функцій перевіряються контраваріантно
- 2Так: параметри функцій перевіряються коваріантно
- 3Так, але лише якщо
Dog- клас, а не інтерфейс
Пояснення
Змінна обіцяє приймати будь-яке Animal, а функція вміє працювати лише з Dog - виклик із Cat зламається. Тому підтип за параметром іде у зворотний бік: (x: Animal) => void можна присвоїти туди, де чекають (x: Dog) => void, але не навпаки.