Вывод и явное указание типов
TypeScript может определять типы автоматически или принимать их от разработчика. Эти два подхода — вывод типов и явное указание — дополняют друг друга и используются в зависимости от контекста.
Вывод типов (type inference)
Когда вы объявляете переменную и сразу присваиваете ей значение, TypeScript автоматически определяет её тип:
let message = "Hello"; // тип: string
let count = 42; // тип: number
let isActive = true; // тип: boolean
Вывод работает не только для переменных, но и для возвращаемых значений функций:
function add(a: number, b: number) {
return a + b; // тип возврата: number
}
Этот механизм позволяет писать меньше кода без потери безопасности: типы проверяются, но не загромождают синтаксис.
Явное указание типов
Иногда TypeScript не может вывести тип — например, если переменная объявлена без начального значения или получает данные из внешнего источника:
let userId; // тип: any (небезопасно!)
userId = fetchFromAPI(); // ошибка возможна
Чтобы избежать этого, тип указывают явно:
let userId: string;
userId = fetchUserId(); // компилятор знает: ожидается строка
Явное указание также используется в сигнатурах функций для параметров и возвращаемого значения:
function greet(name: string): string {
return "Hello, " + name;
}
Это делает контракт функции понятным без чтения её тела.
Когда что использовать
- Используйте вывод типов, когда значение известно сразу — это делает код короче и чище.
- Используйте явное указание, когда:
- переменная инициализируется позже,
- функция принимает или возвращает данные, тип которых важен для интерфейса,
- вы работаете с внешними данными (например, API),
- хотите усилить читаемость и защиту от ошибок.
Явное указание типов не «переопределяет» вывод — оно лишь задаёт ожидания заранее. Если присвоить значение несовместимого типа, компилятор выдаст ошибку.