Комплексный обзор дженериков TypeScript: методы и приемы

«Общие шаблоны TS» относятся к универсальным шаблонам TypeScript, которые являются функцией языка программирования TypeScript. Обобщенные шаблоны позволяют создавать повторно используемые компоненты, которые могут работать с разными типами, что дает возможность писать более гибкий и типобезопасный код.

Вот некоторые распространенные методы и приемы, связанные с дженериками TypeScript:

  1. Общие функции. Вы можете определить функции, которые принимают универсальные типы в качестве параметров или возвращают универсальные типы. Например:
function identity<T>(arg: T): T {
  return arg;
}
  1. Общие классы. Вы можете создавать классы, работающие с универсальными типами. Это позволяет вам определять классы, которые могут работать с разными типами, не жертвуя безопасностью типов. Например:
class Container<T> {
  private item: T;
  constructor(item: T) {
    this.item = item;
  }
  getItem(): T {
    return this.item;
  }
}
  1. Общие интерфейсы: TypeScript позволяет определять общие интерфейсы, которые могут быть реализованы различными типами. Это позволяет создавать многократно используемые контракты для разных типов. Например:
interface Repository<T> {
  getById(id: string): T;
  save(item: T): void;
}
  1. Ограничения на универсальные типы. Вы можете применить ограничения к универсальным типам, чтобы ограничить набор разрешенных типов. Это делается с помощью ключевого слова extends. Например:
function length<T extends { length: number }>(arg: T): number {
  return arg.length;
}

Это гарантирует, что универсальный тип Tдолжен иметь свойство length.

  1. Типы служебных программ. TypeScript предоставляет типы служебных программ, которые можно использовать с универсальными шаблонами для выполнения общих операций с типами. Примеры типов утилит включают, среди прочего, Partial, Required, Pickи Omit.