0Pricing
TypeScript Academy · Урок

Вывод типов и 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 — локальная установка не требуется.

Все уроки этого курса

  1. Примитивные типы и аннотации
  2. Вывод типов и any против unknown
  3. Объединения и литеральные типы (введение в базовое сужение типов)
← Назад к TypeScript Academy