TypeScript · Senior · Запитання 23 з 75
Для чого анотації варіантності in і out у параметрів типу (TS 4.7)?
interface Producer<out T> { get(): T }
interface Consumer<in T> { set(v: T): void }- ✓Правильна відповідь: Явно задають коваріантність/контраваріантність, пришвидшуючи й уточнюючи перевірки
- 2Визначають, які параметри можна читати й писати в рантаймі
- 3Це синтаксис для вхідних і вихідних параметрів, як у C#-методах
Пояснення
Зазвичай TS обчислює варіантність сам, але для складних рекурсивних типів це дорого й іноді неточно. Анотація перевіряється компілятором і використовується під час порівняння. Потрібна рідко - у бібліотеках зі складними типами.