Типы данных
«Все типы в 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