Files

2.0 KiB
Raw Permalink Blame History

title, description
title description
Типизация Как типизируется код в проекте.

Типизация

Как типизируется код в проекте.

Общие правила

  • Указывать типы для параметров компонентов и параметров функций.
  • Предпочитать type для описания сущностей и interface для расширяемых контрактов.
  • Избегать any и unknown без необходимости.
  • Не использовать ts-ignore, кроме крайних случаев с явным комментарием причины.

React-компоненты

  • Пропсы компонента типизировать через отдельный Props.
  • Возвращаемый тип компонента не указывать: TypeScript корректно выводит JSX-результат, а явный ReactElement сужает допустимые варианты возврата.

Функции

  • Для публичных функций указывать возвращаемый тип.
  • Не полагаться на неявный вывод для важных API.

Хорошо

export const formatPrice = (value: number): string => {
  return `${value} ₽`;
};

Плохо

// Плохо: нет явного возвращаемого типа.
export const formatPrice = (value: number) => {
  return `${value} ₽`;
};

Работа с any/unknown

  • any использовать только для временных заглушек.
  • unknown сужать через проверки перед использованием.

Хорошо

const parse = (value: unknown): string => {
  if (typeof value === 'string') {
    return value;
  }

  return '';
};

Плохо

// Плохо: any отключает проверку типов.
const parse = (value: any) => value;