В чем разница между T Extends и T =

«В чем разница между T Extends и T =» — вопрос из категории TypeScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

T extends и T = используются в TypeScript для разных целей:

  1. T extends - ограничивает тип T определенными условиями (constraint). Например:
function logLength<T extends { length: number }>(arg: T): void {
  console.log(arg.length);
}

Здесь T может быть только типом, у которого есть свойство length типа number.

  1. T = - задает значение по умолчанию для generic-параметра:
interface Box<T = string> {
  value: T;
}
const box: Box = { value: "default" }; // T становится string

Ключевые отличия:

  • extends ограничивает возможные типы
  • = устанавливает тип по умолчанию, если тип не указан явно