Переменные и типы данных в TypeScript
Что это и зачем?
Представь, что ты строишь дом из конструктора LEGO. У каждой детали есть своё назначение: красные кирпичики для стен, прозрачные для окон, колёсики для машинок. В программировании то же самое — мы работаем с разными "деталями": числами, текстом, списками. Эти детали называются типами данных.
А переменные — это как коробки, в которые ты складываешь эти детали. На коробке можно написать маркером название, чтобы потом быстро найти нужную деталь. Например: "коробка с колёсами" или "коробка с красными кирпичиками".
В TypeScript мы строго указываем, что можно класть в каждую коробку. Если на коробке написано "только числа", а ты попробуешь положить туда текст — программа не запустится и покажет ошибку. Это как если бы ты попытался вставить квадратный блок LEGO в круглое отверстие — не получится!
Зачем это нужно? Чтобы твоя программа работала без сюрпризов. Представь, что ты пишешь калькулятор для уроков математики. Если по ошибке вместо числа "5" ввести слово "пять", программа сломается. TypeScript проверяет всё заранее и не даёт допустить такую ошибку.
Синтаксис и примеры кода
В TypeScript переменные объявляются с помощью ключевых слов let или const. После названия ставится двоеточие и указывается тип данных.
Пример 1: Числа (number)
// Объявляем переменную "возраст" с типом "число"
let age: number = 12;
// Теперь age можно использовать в расчётах
let nextYearAge: number = age + 1; // nextYearAge станет 13
// Если попробовать написать так:
// age = "двенадцать"; // Ошибка! TypeScript не разрешит
Пример 2: Текст (string)
// Строки — это любой текст в кавычках
let studentName: string = "Аня";
let favoriteSubject: string = "математика";
// Можно соединять строки
let message: string = studentName + " любит " + favoriteSubject;
// message = "Аня любит математика"
// Есть и современный способ — шаблонные строки
let coolMessage: string = `${studentName} обожает ${favoriteSubject}!`;
// coolMessage = "Аня обожает математика!"
Пример 3: Логический тип (boolean)
// boolean — это только true (правда) или false (ложь)
let isStudent: boolean = true;
let hasHomework: boolean = false;
// Такие переменные удобны для проверок
if (isStudent) {
console.log("Пора учить уроки!");
}
// Нельзя написать:
// isStudent = "да"; // Ошибка! Только true или false
Пример 4: Массивы (array)
// Массив — это список однотипных элементов
let grades: number[] = [5, 4, 5, 3, 5]; // Оценки за неделю
// Можно добавлять новые элементы
grades.push(4); // Теперь массив: [5, 4, 5, 3, 5, 4]
// Или получать элемент по индексу (счёт начинается с 0)
let firstGrade: number = grades[0]; // firstGrade = 5
// Массив строк:
let subjects: string[] = ["русский", "математика", "физкультура"];
Пример 5: Объекты (object)
// Объект — как анкета ученика
let student: { name: string; age: number; grade: number } = {
name: "Петя",
age: 11,
grade: 5
};
// Обращаемся к свойствам через точку
console.log(student.name); // Выведет: Петя
console.log(student.age); // Выведет: 11
// Можно менять свойства
student.age = 12; // У Пети день рождения!
Сравнение с Python
В Python тоже есть переменные и типы данных, но есть важное отличие — Python не проверяет типы строго. Это как если бы на коробке LEGO не было надписи, и ты мог положить туда что угодно.
Пример на Python:
# Python: тип не указывается
age = 12 # Python сам понимает, что это число
age = "двенадцать" # И это тоже можно! Ошибки не будет
То же самое на TypeScript:
// TypeScript: тип указывается строго
let age: number = 12;
age = "двенадцать"; // Ошибка! TypeScript не пропустит
В Python ты можешь случайно изменить тип переменной, и программа может сломаться в самый неожиданный момент. TypeScript же ловит такие ошибки ещё до запуска программы — как учитель проверяет домашку перед уроком.
Ещё пример:
// Python
def add(a, b):
return a + b
print(add(5, 3)) # 8 (числа)
print(add("5", "3")) # "53" (строки) — неожиданно!
// TypeScript
function add(a: number, b: number): number {
return a + b;
}
add(5, 3); // 8
add("5", "3"); // Ошибка! TypeScript не даст сложить строки
Типичные ошибки новичков
1. Забываешь указать тип
// Ошибка: TypeScript не знает, что хранить
let score; // Лучше сразу указать: let score: number = 0;
2. Путаешь числа и строки
let year: number = 2024;
// year = "две тысячи двадцать четыре"; // Ошибка! Это строка, а не число
3. Забываешь про кавычки для строк
let name: string = Петя; // Ошибка! Нужно: "Петя" или 'Петя'
4. Пытаешься изменить const
const PI: number = 3.14;
// PI = 3.1415; // Ошибка! const — это константа, её нельзя менять
5. Путаешь типы в массивах
let mixed: number[] = [1, 2, "три"]; // Ошибка! Массив только для чисел
6. Забываешь про точку с запятой
let x: number = 5 // Можно и так, но лучше ставить ;
let y: number = 10; // Так правильнее
Итог
Переменные и типы данных — это основа любой программы. TypeScript помогает тебе не запутаться в своих же коробках с деталями. Ты строго указываешь, что где лежит, и программа работает предсказуемо.
Запомни главное:
- number — для чисел (5, -3, 2.5)
- string — для текста ("привет", "школа")
- boolean — для правды/лжи (true/false)
- number[] — для списка чисел
- string[] — для списка строк
- object — для сложных данных (анкета, настройки)
Когда ты только начинаешь, ошибки — это нормально. TypeScript подсветит их красным, и ты сразу поймёшь, что пошло не так. Со временем ты научишься выбирать правильные типы с первого раза.
Попробуй прямо сейчас написать простую программу: создай переменные для своего имени, возраста и любимого предмета. Выведи их на экран с помощью console.log(). У тебя получится!