📘 TypeScript

Einführung in TypeScript: Geschichte, Besonderheiten, Anwendung in TypeScript

Что это и зачем?

Представь, что ты собираешь конструктор LEGO. У каждой детали есть форма и размер — ты точно знаешь, куда её вставить. Если попытаешься соединить круглую деталь с квадратной, ничего не получится. TypeScript — это такой же "контролёр" для кода. Он проверяет, правильно ли ты используешь данные: числа, строки, списки. Например, если ты напишешь "5" + 3 (текст и число), TypeScript сразу скажет: "Стоп! Это разные типы, так нельзя".

Зачем это нужно? Без TypeScript твой код может работать неправильно, и ты узнаешь об этом только когда программа уже запустится. А TypeScript ловит ошибки ещё до запуска — как учитель проверяет диктант перед тем, как ты сдашь тетрадь.

Синтаксис и примеры кода

TypeScript — это "надстройка" над JavaScript. Весь JavaScript-код работает и в TypeScript, но TypeScript добавляет строгие правила. Давай посмотрим на примеры.

// Пример 1: Объявление переменной с типом
// Мы говорим: "имя — это строка, и ничего другого"
let имя: string = "Аня";
// имя = 42; // Ошибка! Нельзя присвоить число строке

// Пример 2: Функция с типизированными параметрами
// Функция принимает два числа и возвращает число
function сложить(a: number, b: number): number {
    return a + b;
}
console.log(сложить(5, 3)); // 8
// console.log(сложить("5", 3)); // Ошибка! Первый параметр — строка, а нужно число

// Пример 3: Массивы с типом
// Список только из строк
let друзья: string[] = ["Петя", "Вася", "Маша"];
// друзья.push(123); // Ошибка! Нельзя добавить число в массив строк

// Пример 4: Объект с типом
// Создаём "шаблон" для объекта
type Студент = {
    имя: string;
    возраст: number;
};
let новыйСтудент: Студент = {
    имя: "Коля",
    возраст: 15
    // возраст: "пятнадцать" // Ошибка! Возраст должен быть числом
};

// Пример 5: Union-типы (объединение)
// Переменная может быть строкой ИЛИ числом
let идентификатор: string | number;
идентификатор = "abc123"; // Работает
идентификатор = 456; // Тоже работает
// идентификатор = true; // Ошибка! Логический тип не разрешён

В каждом примере TypeScript проверяет, что ты не перепутал типы. Это как если бы в конструкторе LEGO детали были подписаны: "только для колёс", "только для окон".

Сравнение с Python

Python — тоже язык программирования, но он более "свободный". В Python ты можешь написать x = "5", а потом x = 5 — и ошибки не будет. TypeScript же заставит тебя выбрать что-то одно.

// TypeScript: строго
let возраст: number = 10;
// возраст = "десять"; // Ошибка!

// Python: свободно
# возраст = 10
# возраст = "десять"  # Работает, но может привести к ошибке позже

В Python ты можешь смешивать типы в списке: ["текст", 123, True]. В TypeScript такое не пройдёт — массив должен содержать элементы одного типа (если ты не используешь специальные конструкции).

Ещё отличие: TypeScript проверяет код до запуска (как компилятор), а Python — во время выполнения. Представь, что TypeScript — это репетиция спектакля, где актёры учат роли заранее, а Python — импровизация на сцене.

Типичные ошибки новичков

  • Забыть указать тип: Если написать let x = 5, TypeScript сам догадается, что это число. Но если потом попытаться присвоить x = "текст", будет ошибка. Новички часто думают: "Зачем указывать тип, если компилятор сам понимает?" Но явное указание типов делает код понятнее.
  • Путать строки и числа: let a: number = "10" — ошибка. Нужно либо let a: string = "10", либо let a: number = 10.
  • Не использовать типы для функций: Если не указать, что функция возвращает, TypeScript может не заметить ошибку. Всегда пиши function имя(): тип { ... }.
  • Игнорировать ошибки компилятора: TypeScript подсвечивает проблемы красным. Новички иногда говорят: "Оно и так работает, зачем исправлять?" Но лучше исправить сразу, чем потом искать баг в большой программе.
  • Слишком сложные типы: Не пытайся сразу использовать type и interface для всего. Начни с простых: string, number, boolean.

Итог

TypeScript — это как "очки" для кода: ты лучше видишь, что делаешь, и меньше ошибаешься. Он учит тебя думать о данных: какие они (числа, строки, списки) и как их можно использовать. Да, сначала придётся писать больше букв (: number, : string), но это окупается, когда программа становится большой.

Для школьника TypeScript — отличный старт: он строгий, как математика, но гибкий, как LEGO. Попробуй написать простую программу: калькулятор или список дел. С TypeScript ты сразу увидишь, если что-то пошло не так. Удачи!