Вывод типов и any против unknown
Посмотрите, как TypeScript выводит типы, чем отличаются any и unknown и как const влияет на вывод типа.
«Вывод типов и any против unknown» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 3 уроков всего.
Введение
Цель: узнать, как TS выводит типы из значений, и сравнить any с unknown с точки зрения безопасности.
Вывод типов с let и const
Вывод типов: let выводит более общий тип (number). const выводит тип литерала ("TS").
let count = 5;
// inferred number
const title = "TS";
// inferred literal type "TS"
console.log(count, title);as const
as const сохраняет типы литералов, делая значения доступными только для чтения. Это полезно для перечислений и массивов конфигурации.
const colors = ["red", "green", "blue"] as const;
// type is readonly ["red","green","blue"]
console.log(colors);Тип any
any отключает проверку типов. Он даёт свободу, но лишает безопасности: ошибки проходят компиляцию и приводят к сбою во время выполнения.
let flexible: any = 42;
lexible = "hello";
flexible.nonexistentMethod();
// no error at compile time!Тип unknown
unknown заставляет проверить тип перед использованием. Это безопаснее, чем any, поскольку нельзя бездумно вызывать методы.
let input: unknown = "hello";
// Must narrow before use
if (typeof input === "string") {
console.log(input.toUpperCase());
}Когда использовать
Рекомендация: для большинства переменных предпочитайте вывод типов. Для ясности используйте явные аннотации. Избегайте any; если тип пока неизвестен, предпочитайте unknown.
Проверка any и unknown
Быстрая проверка: в чём главное различие между any и unknown?
Итоги
Итоги: TS автоматически выводит типы. const сужает тип до литералов, а as const фиксирует значения. any отключает безопасность, а unknown требует проверок.
Часто задаваемые вопросы
Урок «Вывод типов и any против unknown» бесплатный?
Да — полный текст урока «Вывод типов и any против unknown» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 3 уроков всего.
Чему я научусь в уроке «Вывод типов и any против unknown»?
Посмотрите, как TypeScript выводит типы, чем отличаются any и unknown и как const влияет на вывод типа. Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать TypeScript Academy?
Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.
Сколько времени занимает урок «Вывод типов и any против unknown»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке TypeScript Academy?
Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Примитивные типы и аннотации
- Вывод типов и any против unknown
- Объединения и литеральные типы (введение в базовое сужение типов)