Sobes.tech
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:

  • any keelab tüüpide kontrollimise. Muutuja, mille tüüp on any, võib omistada mis tahes väärtuse ja seda kasutada piiranguteta. See vähendab tüüpide turvalisust.

  • unknown on turvalisem any ekvivalent. unknown tüüpi väärtus võib olla omistatud ainult unknown või any tüüpi muutujatele. unknown vää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.