PassFront
  1. PassFront
  2. База знаний
  3. Типизация функций

Есть ли дополнительные функции у TypeScript?

Типизация функций

Да. Кроме типов, TypeScript добавляет несколько возможностей, которых нет в JavaScript, а также помогает использовать новые возможности JS раньше.

Возможности только TypeScript

  • enum — именованные константы с объектом в рантайме.
  • Параметры-свойства в конструкторе — constructor(private name: string) сразу создаёт поле.
  • Модификаторы доступа private, protected, readonly, abstract.
  • Декораторы (экспериментальная версия; стандартные теперь есть и в JS).
  • namespace — пространства имён.
  • Перегрузки функций — несколько сигнатур одной функции.
function format(value: number): string;
function format(value: Date): string;
function format(value: number | Date) {
  return value instanceof Date ? value.toISOString() : value.toFixed(2);
}

Транспиляция

TypeScript умеет компилировать новый синтаксис JS (?., ??, классы) в старые версии через target, хотя сейчас эту задачу часто отдают бандлеру.

Нюанс

Многие из этих возможностей генерируют код (enum, параметры-свойства, namespace) и не поддерживаются в режиме «только удаление типов» (erasableSyntaxOnly).

Коротко для собеседования

Да: enum, параметры-свойства, модификаторы доступа, перегрузки, namespace и декораторы; часть из них генерирует код в рантайме.

Подробнее: TypeScript Handbook

Другие вопросы раздела