Встречается на собеседованиях • сегодня

В чем разница между never, unknown и any

never — тип, означающий, что значение никогда не появится. Используется для функций, которые всегда выбрасывают ошибку или бесконечных циклов.

typescript
function throwError(message: string): never {
  throw new Error(message);
}

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

typescript
let value: unknown;
if (typeof value === 'string') {
  value.toUpperCase(); // Теперь безопасно
}

any — отключает проверку типов. Позволяет присваивать любое значение и вызывать любые методы без ошибок компиляции. Использовать не рекомендуется.

typescript
let anything: any = 'hello';
anything.toFixed(); // Ошибка в runtime, но TypeScript не ругается

Итог:

  • never — "никогда не будет значения"
  • unknown — "может быть чем угодно, но нужно проверить"
  • any — "может быть чем угодно, проверка не нужна (опасно)"
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы