Тип generic по умолчанию: чем знак = отличается от extends

Extends ограничивает допустимый generic-аргумент, а знак = задаёт тип по умолчанию, если аргумент не указан или не выведен.

Короткий ответ

Что ответить на собеседовании

Extends ограничивает допустимый generic-аргумент, а знак = задаёт тип по умолчанию, если аргумент не указан или не выведен.

Подробный разбор

Ответ с пояснениями

Extends ограничивает допустимый generic-аргумент, а знак = задаёт тип по умолчанию, если аргумент не указан или не выведен.

Box<T extends {id: string}> требует наличие id. Box<T = {id: string}> допускает иной явно переданный T и сам по себе ничего не ограничивает. Можно совместить: T extends Base = Base. Без исходного типа нельзя описать все последствия замены, но различие ограничения и fallback остаётся ключевым.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее