📘 TypeScript
Переменные и система типов TypeScript
Аннотации типов
TypeScript позволяет аннотировать переменные типами. Компилятор выводит типы автоматически, когда аннотация отсутствует.
let name: string = "Алиса";
let age: number = 25;
let isActive: boolean = true;
let data: null = null;
// Вывод типа — TypeScript определяет сам
let city = "Москва"; // выводится как string
let count = 42; // выводится как number
Массивы и кортежи
const numbers: number[] = [1, 2, 3, 4, 5];
const names: Array = ["Алиса", "Боб"];
// Кортеж — массив фиксированной длины с известными типами
const point: [number, number] = [10, 20];
const entry: [string, number] = ["счёт", 95];
Объединение типов (Union)
let id: string | number;
id = "abc-123"; // OK
id = 42; // OK
function printId(id: string | number) {
if (typeof id === "string") {
console.log(id.toUpperCase());
} else {
console.log(id.toFixed(2));
}
}
Литеральные типы и псевдонимы типов
type Direction = "up" | "down" | "left" | "right";
type Status = "pending" | "approved" | "rejected";
let move: Direction = "up"; // OK
// move = "diagonal"; // ❌ Ошибка
type Point = { x: number; y: number };
const origin: Point = { x: 0, y: 0 };
any, unknown, never
let anything: any = "hello"; // отключает проверку типов
anything = 42; // OK
let safe: unknown = getData(); // нужно сузить тип перед использованием
if (typeof safe === "string") {
console.log(safe.toUpperCase());
}
function fail(msg: string): never { // никогда не возвращает значение
throw new Error(msg);
}