Введение в TypeScript: с чего начать в 2025 году
В 2025 году TypeScript прочно занял позицию одного из самых востребованных языков программирования в мире веб-разработки. Если вы уже знакомы с JavaScript, но хотите писать более надёжный, масштабируемый и понятный код — TypeScript станет вашим незаменимым инструментом. Это не просто "надстройка" над JavaScript, а мощная система типов, которая помогает отлавливать ошибки на этапе написания кода, а не в runtime.
В этой статье мы разберём, с чего начать изучение TypeScript в 2025 году: установим окружение, напишем первый код, познакомимся с базовыми типами и интерфейсами. Вы узнаете, почему крупные компании (Google, Microsoft, Airbnb) выбирают TypeScript и как он может упростить вашу жизнь как разработчика.
Почему TypeScript актуален в 2025 году?
TypeScript — это строго типизированный язык, который компилируется в чистый JavaScript. Его главное преимущество — статическая типизация, которая позволяет:
- Обнаруживать ошибки на этапе компиляции, а не во время выполнения кода в браузере.
- Улучшить читаемость кода: типы выступают в роли документации.
- Упростить рефакторинг: IDE (например, VS Code) подсказывает все места, где нужно изменить код.
- Повысить надёжность крупных проектов и командной разработки.
По данным опросов Stack Overflow 2024-2025, TypeScript входит в топ-5 самых любимых и высокооплачиваемых языков. Если вы планируете карьеру фронтенд- или бэкенд-разработчика (особенно с Node.js), знание TypeScript — обязательный пункт в резюме.
Установка и настройка TypeScript в 2025 году
Начать работу с TypeScript очень просто. Вам понадобится Node.js (версия 18 или выше) и любой редактор кода (рекомендуем Visual Studio Code с официальным расширением для TypeScript).
Шаг 1: Установка TypeScript глобально
Откройте терминал и выполните команду:
npm install -g typescript
Проверьте установку:
tsc --version
Вы должны увидеть версию TypeScript (например, 5.5.0).
Шаг 2: Создайте первый TypeScript файл
Создайте файл index.ts и напишите простой код:
const greeting: string = "Привет, TypeScript!";
const year: number = 2025;
function logMessage(message: string, year: number): void {
console.log(`${message} — год ${year}.`);
}
logMessage(greeting, year);
Шаг 3: Компиляция в JavaScript
Запустите компилятор:
tsc index.ts
После этого в папке появится файл index.js с чистым JavaScript-кодом, готовым к запуску в браузере или Node.js.
Совет: Для реальных проектов используйте tsconfig.json — файл конфигурации, который задаёт параметры компиляции. Его можно создать командой:
tsc --init
Основы типов в TypeScript
Главная сила TypeScript — система типов. Рассмотрим базовые типы, которые вы будете использовать каждый день.
1. Примитивные типы
TypeScript поддерживает все примитивные типы JavaScript, но добавляет к ним аннотации:
let name: string = "Анна";
let age: number = 30;
let isStudent: boolean = false;
let notDefined: undefined = undefined;
let empty: null = null;
2. Массивы и кортежи
Массивы можно объявить двумя способами:
let fruits: string[] = ["яблоко", "банан", "апельсин"];
let numbers: Array<number> = [1, 2, 3];
Кортежи (tuples) — это массивы фиксированной длины с известными типами:
let user: [string, number] = ["Анна", 30];
3. Enum (перечисления)
Удобно для хранения набора констант:
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT"
}
let move: Direction = Direction.Up;
4. Any и Unknown
any отключает проверку типов — используйте его только в крайних случаях. unknown — безопасная альтернатива, требующая проверки перед использованием:
let data: unknown = "какая-то строка";
if (typeof data === "string") {
console.log(data.toUpperCase());
}
Интерфейсы и типы: как описывать сложные структуры
Когда данные становятся сложнее (объекты, функции), на помощь приходят интерфейсы и пользовательские типы.
Интерфейсы (interface)
Позволяют описать структуру объекта:
interface User {
id: number;
name: string;
email?: string; // необязательное поле
readonly createdAt: Date; // только для чтения
}
const newUser: User = {
id: 1,
name: "Иван",
createdAt: new Date()
};
// newUser.createdAt = new Date(); // Ошибка! Поле только для чтения
Типы (type)
Типы более гибкие: они могут объединять существующие типы (union) или пересекать их (intersection):
type Status = "active" | "inactive" | "banned";
type ID = string | number;
type Admin = User & { role: "admin"; permissions: string[] };
const admin: Admin = {
id: 2,
name: "Мария",
createdAt: new Date(),
role: "admin",
permissions: ["read", "write", "delete"]
};
Когда что использовать? Интерфейсы лучше подходят для описания публичных API и объектов, которые могут расширяться. Типы — для объединений, пересечений и сложных вычисляемых структур.
Практический пример: создаём простую функцию с TypeScript
Давайте закрепим знания на реальном примере. Напишем