Базовые типы
TypeScript расширяет JavaScript системой типов. Тип указывается после переменной через двоеточие.
Примитивы
let name: string = 'Алиса';
let age: number = 25;
let isActive: boolean = true;
let nothing: null = null;
let notDefined: undefined = undefined;
number
Все числа — number: целые, дробные, отрицательные.
let count: number = 42;
let price: number = 9.99;
let hex: number = 0xff;
Нет отдельных int, float, double — только number.
string
let firstName: string = 'Иван';
let greeting: string = `Привет, ${firstName}`;
Одинарные, двойные кавычки и шаблонные строки — всё string.
boolean
let isDone: boolean = false;
let isGreater: boolean = 10 > 5;
Массивы
Два синтаксиса:
let numbers: number[] = [1, 2, 3];
let names: Array<string> = ['Алиса', 'Боб'];
Оба эквивалентны.
Объекты
let user: { name: string; age: number } = {
name: 'Алиса',
age: 25,
};
Или через interface / type.
Функции
function add(a: number, b: number): number {
return a + b;
}
const multiply = (a: number, b: number): number => a * b;
Тип возвращаемого значения — после скобок.
Если функция ничего не возвращает:
function log(message: string): void {
console.log(message);
}
Необязательные параметры
function greet(name: string, title?: string): string {
return title ? `${title} ${name}` : name;
}
Знак ? — параметр опциональный.
Значения по умолчанию
function greet(name: string, title: string = 'Гость'): string {
return `${title} ${name}`;
}
any
any отключает проверку типа:
let data: any = 'строка';
data = 42;
data = { foo: 'bar' };
data.nonexistent(); // ошибка не покажется
any — избегай. Он ломает всю пользу TypeScript. Используй unknown вместо него.
unknown
Похож на any, но требует проверки перед использованием:
let data: unknown = 'строка';
if (typeof data === 'string') {
console.log(data.toUpperCase());
}
unknown безопасен: нельзя использовать без проверки типа.
never
Тип для значений, которых не бывает:
function fail(message: string): never {
throw new Error(message);
}
Функция, которая всегда выбрасывает исключение или бесконечно цикл.
void
function log(message: string): void {
console.log(message);
}
Означает «функция ничего не возвращает».
Вывод типов
Если тип очевиден — TypeScript выведет его сам:
let name = 'Алиса'; // string
let age = 25; // number
let active = true; // boolean
let numbers = [1, 2, 3]; // number[]
Явно указывать тип нужно, когда вывод неочевиден или когда хочешь зафиксировать конкретный тип.
Итоги
- Тип указывается через
: - Примитивы:
string,number,boolean,null,undefined - Массивы:
number[]илиArray<number> - Функции: тип аргументов и возвращаемого значения
any— отключает проверки, избегайunknown— безопасныйanynever— для невозможных значенийvoid— для функций без возврата