Стандартная библиотека TypeScript: полный обзор для разработчиков

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Стандартная библиотека TypeScript: полный обзор

TypeScript — это строго типизированное надмножество JavaScript, которое добавляет статическую типизацию и мощные инструменты для разработки крупных приложений. В отличие от многих языков, TypeScript не имеет обширной встроенной стандартной библиотеки в классическом понимании (как, например, Java или Python). Вместо этого он предоставляет набор встроенных типов, утилит для работы с типами, декораторов и инструментов компилятора. В этой статье мы подробно разберём все ключевые компоненты стандартной библиотеки TypeScript.

1. Встроенные типы данных

TypeScript включает все примитивные типы JavaScript и добавляет свои собственные:

  • boolean — логический тип
  • number — числа (целые и с плавающей точкой)
  • string — строки
  • null и undefined — специальные значения
  • symbol — уникальные идентификаторы
  • bigint — большие целые числа
  • any — отключение проверки типов
  • unknown — безопасная альтернатива any
  • never — тип для функций, которые никогда не завершаются
  • void — отсутствие возвращаемого значения

Пример использования встроенных типов:

let isDone: boolean = false;
let decimal: number = 42;
let color: string = "синий";
let notSure: unknown = 4;
notSure = "теперь строка"; // допустимо

function error(message: string): never {
    throw new Error(message);
}

2. Утилитарные типы (Utility Types)

TypeScript предоставляет мощные встроенные утилиты для трансформации типов. Вот самые полезные из них:

  • Partial<T> — делает все поля типа T необязательными
  • Required<T> — делает все поля обязательными
  • Readonly<T> — делает все поля только для чтения
  • Pick<T, K> — выбирает указанные ключи из типа
  • Omit<T, K> — исключает указанные ключи
  • Record<K, T> — создаёт тип объекта с ключами K и значениями T
  • Exclude<T, U> — исключает типы, присутствующие в U
  • ReturnType<T> — извлекает тип возвращаемого значения функции

Пример использования утилитарных типов:

interface User {
    id: number;
    name: string;
    email: string;
}

// Частичное обновление пользователя
function updateUser(id: number, changes: Partial<User>): void {
    // Логика обновления
}

// Только для чтения
const readonlyUser: Readonly<User> = {
    id: 1,
    name: "Иван",
    email: "ivan@example.com"
};

// Выбор полей
type UserName = Pick<User, "name" | "email">;

3. Декораторы

Декораторы — это специальные объявления, которые позволяют модифицировать классы, методы, свойства и параметры. TypeScript поддерживает несколько типов декораторов:

  • Декораторы классов — применяются к конструктору класса
  • Декораторы методов — применяются к методам класса
  • Декораторы свойств — применяются к свойствам
  • Декораторы параметров — применяются к параметрам методов

Пример декоратора метода для логирования:

function log(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
    const originalMethod = descriptor.value;
    descriptor.value = function (...args: any[]) {
        console.log(`Вызов ${propertyKey} с аргументами: ${JSON.stringify(args)}`);
        return originalMethod.apply(this, args);
    };
}

class Calculator {
    @log
    add(a: number, b: number): number {
        return a + b;
    }
}

const calc = new Calculator();
calc.add(2, 3); // Логирует: Вызов add с аргументами: [2,3]

4. Работа с массивами и коллекциями

TypeScript расширяет стандартные методы JavaScript для массивов, добавляя строгую типизацию:

const numbers: number[] = [1, 2, 3, 4, 5];

// Типизированные методы
const doubled: number[] = numbers.map(n => n * 2);
const even:                    

Рекомендаций