PassFront
  1. PassFront
  2. База знаний
  3. Основы TypeScript

Зачем нужен TypeScript, если есть PropTypes и JSDoc?

Основы TypeScript

PropTypes и JSDoc решают часть задач TypeScript, но слабее: PropTypes проверяет только props и только во время работы, JSDoc — описание, которое легко «разъезжается» с кодом.

PropTypes

  • проверка в рантайме и только в dev-сборке;
  • только props React-компонентов;
  • ошибка видна, когда сценарий уже выполнился, а не в редакторе;
  • из React 19 PropTypes удалены.

JSDoc

/** @param {{ id: string, total: number }} order */
function pay(order) {}
  • редактор может проверять JSDoc через TypeScript (// @ts-check) — это по сути и есть TypeScript;
  • сложные типы (дженерики, объединения) описывать неудобно.

Что даёт именно TypeScript

  • проверка всего кода, а не только props;
  • ошибки до запуска, в редакторе и CI;
  • выразительные типы и вывод типов;
  • безопасный рефакторинг по всему проекту.

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

PropTypes проверяет только props в рантайме, JSDoc неудобен для сложных типов; TypeScript проверяет весь код статически и даёт безопасный рефакторинг.

Подробнее: TypeScript — JSDoc Reference

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