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 ты сразу увидишь, если что-то пошло не так. Удачи!