Какие знаешь типизаторы JavaScript

«Какие знаешь типизаторы JavaScript» — вопрос из категории TypeScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

TypeScript — самый популярный, добавляет статическую типизацию с поддержкой дженериков, интерфейсов, union-типов. Полная совместимость с JS.

Flow — разработан Facebook, легковесный, но менее популярный. Использует аннотации через комментарии.

Пример TypeScript:

interface User {
  id: number;
  name: string;
}

function greet(user: User): string {
  return `Hello, ${user.name}!`;
}

JSDoc — подход через комментарии, не требует компиляции, но менее строгий:

/**
 * @param {number} x
 * @returns {number}
 */
function double(x) {
  return x * 2;
}

PropTypes — для проверки типов пропсов в React, работает в runtime.