Какая типизация в TypeScript

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

Ответ

TypeScript использует статическую типизацию с возможностью вывода типов. Основные типы:

Примитивные:

let isDone: boolean = false;
let count: number = 42;
let name: string = 'Alice';

Специальные:

let u: undefined = undefined;
let n: null = null;

Объектные:

let list: number[] = [1, 2, 3];
let tuple: [string, number] = ['hello', 10];

Пользовательские:

type User = {
  id: number;
  name: string;
};

interface Animal {
  sound(): void;
}

Особенности:

  • Поддерживает union types (string | number)
  • Имеет type guards и type assertions
  • Позволяет использовать generics
  • Поддерживает структурную типизацию (duck typing)

TypeScript проверяет типы на этапе компиляции, но в runtime типы не существуют.