Sobes.tech
Middle

Ce este unknown în TypeScript și în ce se deosebește de any?

sobes.tech AI

Răspuns de la 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 полезен, когда нужно принимать значения неизвестного типа, но при этом сохранить безопасность типов.