Что такое статическая типизация?
Основы языка
Статическая типизация — это модель, при которой типы переменных проверяются на этапе компиляции, до запуска программы. Тип задаётся заранее и обычно не меняется.
Что это значит
Тип известен во время компиляции; несоответствие типов — ошибка ещё до запуска:
let count: number = 5;
count = 'text'; // ошибка компиляции — тип не совпадаетПлюсы
- Ранняя ловля ошибок — до выполнения, на этапе разработки.
- Автодополнение и подсказки IDE — редактор знает типы.
- Самодокументируемость — типы описывают контракты.
- Безопасный рефакторинг — компилятор ловит поломки.
Минусы
- Больше кода — аннотации типов.
- Меньше гибкости — строже, дольше писать прототип.
- Нужен этап компиляции.
Статическая против динамической
- Статическая (TypeScript, Java) — типы на компиляции, ошибки раньше.
- Динамическая (JavaScript, Python) — типы в рантайме, гибче, но ошибки позже.
TypeScript
Добавляет статическую типизацию поверх JavaScript: проверка на этапе компиляции, а после сборки — обычный динамический JS (типы стираются).
Коротко для собеседования
Статическая типизация — проверка типов на этапе компиляции, до запуска. Плюсы: ранняя ловля ошибок, автодополнение, безопасный рефакторинг. Минусы: больше кода, меньше гибкости. TypeScript добавляет её поверх JS; в рантайме типы стираются.