Middle
Mis vahe on unknown ja any vahel TypeScriptis?
sobes.tech AI
Vastus AI-lt
TypeScriptis on any ja unknown tüübid, mis võivad sisaldada mis tahes tüüpi väärtusi, kuid nende vahel on olulisi erinevusi:
-
anykeelab tüüpide kontrollimise. Muutuja, mille tüüp onany, võib omistada mis tahes väärtuse ja seda kasutada piiranguteta. See vähendab tüüpide turvalisust. -
unknownon turvalisemanyekvivalent.unknowntüüpi väärtus võib olla omistatud ainultunknownvõianytüüpi muutujatele.unknownväärtuse kasutamiseks tuleb esmalt kontrollida selle tüüpi või teisendada see sobivasse tüüpi.
Näide:
let a: any = 10;
let u: unknown = 10;
let num1: number = a; // OK
// let num2: number = u; // Kompileerimisviga
if (typeof u === 'number') {
let num2: number = u; // Pärast kontrolli OK
}
Seega sunnib unknown arendajat selgelt kontrollima tüüpe, mis suurendab koodi turvalisust, samas kui any keelab kõik kontrollid.