Перегрузка функций (Function Overloading)

function getInfo(name: string): string;
function getInfo(age: number): string;
function getInfo(single: boolean): string;
function getInfo(value: (string | number | boolean)): string {
  switch (typeof value) {
    case 'string':
      return `Имя: ${value}`;
    case 'number':
      return `Возраст: ${value}`;
    case 'boolean':
      return value ? 'Не женат/Не замужем' : 'Женат/Замужем';
  }
}

Дженерики (Generics)

позволяют создавать компоненты, работающие с различными типами

function identity<T>(arg: T): T {
  return arg;
}

изучить:

  • Высшие функции
  • Асинхронные функции