Sobes.tech
Middle+

TypeScript-те any мен unknown-ның айырмашылығы неде?

sobes.tech AI

AI-дан жауап

TypeScript-те any және unknown — бұл кез келген мәндермен жұмыс істеуге мүмкіндік беретін типтер, бірақ олардың арасында маңызды айырмашылықтар бар:

  • any типі типтік тексеруді өшіреді. any типі бар айнымалыға кез келген мән берілуі мүмкін, және оған кез келген операция жасауға болады, бұл компиляция қатесінің болмауына әкеледі. Бұл типтердің қауіпсіздігін төмендетеді.

  • unknownany-дің қауіпсізірек аналогы. Ол да кез келген мәнді қамтуы мүмкін, бірақ мәнді қолданбас бұрын оның типін тексеру немесе қажетті типке түрлендіру керек. Компилятор unknown типіндегі айнымалыны тікелей қолдануға рұқсат бермейді.

Мысал:

let a: any = 10;
let u: unknown = 10;

let num1: number = a; // Жақсы
// let num2: number = u; // Қате компиляция

if (typeof u === 'number') {
  let num2: number = u; // Тексеруден кейін жақсы
}

Осылайша, unknown қауіпсіз әрі нақты типтерді өңдеуге мәжбүр етеді, ал any — типтерді бақылаусыз қолданудың жолы.