Sobes.tech
Назад к вопросам
Middle
1

Что такое unknown в TypeScript и чем он отличается от any?

Компании, где спрашивали
ТранснефтьТранснефть

Ответ от нейросети

sobes.tech AI

В TypeScript unknown — это тип, который представляет значение неизвестного типа. Он более строгий, чем any, потому что с unknown нельзя просто так выполнять операции или присваивать его другим типам без проверки типа.

Основные отличия unknown от any:

  • any отключает проверку типов, позволяя делать с переменной что угодно, что может привести к ошибкам во время выполнения.
  • unknown требует, чтобы перед использованием значения была проведена проверка типа или приведение, что повышает безопасность кода.

Пример:

let a: any = 10;
let b: unknown = 10;

let c: number;

c = a; // ОК, any можно присвоить любому типу

c = b; // Ошибка: нельзя присвоить unknown без проверки

if (typeof b === 'number') {
  c = b; // ОК, после проверки типа
}

Таким образом, unknown полезен, когда нужно принимать значения неизвестного типа, но при этом сохранить безопасность типов.