Back to all questions

What is the difference between any and unknown in TypeScript?

Devs Hive

Devs Hive

Seen on interview: 3 users

Besides being a common interview question, understanding this difference is also useful in day-to-day work.

Any

Let's start with any. Put simply, when we use it, we turn TypeScript off.

let num: any = 1; // ми відключили TypeScript для змінної num

num.push() // TS відключений тому ми можемо використовувати будь які методи

// в числа такого метода не існує тому ми отримаємо помилку в runtime
// але не зловимо її на етапі компіляції чи лінтера

Unknown

It is often described as a type-safe alternative to any. If we declare a value as unknown, we can assign anything to it, but before using it we must perform type narrowing and check its type.

let num: unknown = 1;

num = 'some string'; // unknown дозволяє записувати будь що

// якщо ми спробуємо виклакати якийсь метод чи властивість на num
// ми отримаємо помилку і TS забовʼяже перевірити тип
if (typeof num === 'string') {
// тепер ми зможемо викликати будь який метод чи властивість
// які доступні в String
num.toUpperCase();
}

// Для прикладу, застосуємо narrowing для number
if (typeof num === 'number') {
num.toFixed();
}

To sum up, from a type safety standpoint you should always use unknown and avoid using any.

Seen on interview?

Comments (1)

Sign in to leave a comment

TA
Nataliia
November 21, 2025 at 09:18 PM

Одне з тих питань, яке питають завжди