Junior — Middle
Care este diferența dintre tipurile any și unknown în TypeScript din punct de vedere al utilizării și siguranței tipurilor?
sobes.tech AI
Răspuns de la AI
Тип any в TypeScript отключает проверку типов для переменной, позволяя присваивать ей значения любого типа и выполнять любые операции без ошибок компиляции. Это удобно, но снижает безопасность типов, так как ошибки могут проявиться только во время выполнения.
Тип unknown тоже может содержать значение любого типа, но с ним нельзя напрямую выполнять операции или присваивать другим типам без явной проверки или приведения типа. Это делает unknown более безопасным, так как заставляет разработчика явно обрабатывать тип данных перед использованием.
Пример:
let a: any = 5;
a = "строка"; // допустимо
let b: number = a; // тоже допустимо, но может привести к ошибке во время выполнения
let u: unknown = 5;
u = "строка";
// let c: number = u; // ошибка компиляции
if (typeof u === "number") {
let c: number = u; // безопасно
}
Итого, any — это "отключение" типизации, а unknown — безопасный аналог, требующий проверки типа перед использованием.