Типы данных

«Все типы в TypeScript являются подтипами мастер-типа any

Базовые типы

let name: string = 'Алиса'
let age: number = 25
let isStudent: boolean = true
let nothing: null = null
let undef: undefined = undefined

// any — избегай по возможности!
let anything: any = 42
anything = 'теперь строка'  // OK с any

Массивы

let numbers: number[] = [1, 2, 3]
let names: string[] = ['Алиса', 'Боб']
let mixed: (string | number)[] = [1, 'два', 3]

Кортежи (Tuple)

«Массив, в котором каждый элемент может иметь свой тип» — часто для записей БД:

let pair: [string, number] = ['Алиса', 25]

Enum

enum Direction {
  Up = 'UP',
  Down = 'DOWN',
  Left = 'LEFT',
  Right = 'RIGHT'
}
const move = (dir: Direction) => console.log(dir)
move(Direction.Up)  // 'UP'

Объединение и псевдонимы типов

// Union
let id: string | number = 123
id = 'ABC'  // тоже OK

// Type alias
type ID = string | number
type Point = { x: number; y: number }

Утверждение типов

// as syntax (в JSX только этот вариант)
let value = someValue as string

// угловые скобки
let value = <string>someValue