Sobes.tech
Back to questions
Junior — Middle
95

Можете объяснить, что означает тип 'unknown' в TypeScript и чем он отличается от 'any'?

Answer from AI

sobes.tech AI

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

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

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

Пример:

let valueAny: any = 10;
let valueUnknown: unknown = 10;

// Можно вызвать метод без ошибок с any
valueAny.toFixed(2);

// С unknown нужно проверить тип
if (typeof valueUnknown === 'number') {
  valueUnknown.toFixed(2); // теперь безопасно
}

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