Null & Undefined

TypeScript-dagi Null & Undefined

TypeScript Null & Undefined

TypeScript null yoki undefined qiymatlarni boshqarishda kuchli tizimga ega.

By default null va undefined bilan ishlash o'chirilgan va uni strictNullChecks parametrini true ga o‘rnatish orqali yoqish mumkin.

Turlar

null va undefined primitiv turlar bo'lib, ular string kabi boshqa turlar kabi ishlatilishi mumkin.

Misol:

let value: string | undefined | null = null;
value = 'hello';
value = undefined;

strictNullChecks yoqilganida, TypeScript qiymatlar berilishini talab qiladi, agar undefined turga aniq qo'shilmasa.

Option Chaining

Optional Chaining – bu JavaScript xususiyati bo'lib, TypeScript’ning null bilan ishlashiga yaxshi mos keladi. Bu ob'ekt ustunliklariga mavjud yoki mavjud bo'lmasligini kompakt sintaksis bilan kirish imkonini beradi. Bu ?. operatori bilan foydalaniladi.

Misol:

interface House {
  sqft: number;
  yard?: {
    sqft: number;
  };
}
 
function printYardSize(house: House) {
  const yardSize = house.yard?.sqft;
  if (yardSize === undefined) {
    console.log('No yard');
  } else {
    console.log(`Yard is ${yardSize} sqft`);
  }
}
 
let home: House = {
  sqft: 500,
};
 
printYardSize(home); // 'No yard' deb chiqaradi

Nullish Coalescence

Nullish Coalescence – bu yana bir JavaScript xususiyati bo'lib, TypeScript’ning null bilan ishlashiga yaxshi mos keladi. Bu null yoki undefined bilan ishlashda maxsus zaxira qiymatlarni yozish imkonini beradi. Bu boshqa falsy qiymatlar yuzaga kelishi mumkin bo'lsa-da, hali ham to'g'ri hisoblanadi. Bu ?? operatori bilan ifoda etiladi, && operatori bilan ishlashga o'xshash.

Misol:

function printMileage(mileage: number | null | undefined) {
  console.log(`Mileage: ${mileage ?? 'Not Available'}`);
}
 
printMileage(null); // 'Mileage: Not Available' deb chiqaradi
printMileage(0); // 'Mileage: 0' deb chiqaradi

Null Assertion

TypeScript’ning aniqlash tizimi mukammal emas, ba'zan qiymatning null yoki undefined bo'lish ehtimolini e'tiborga olish ma'qul. Buni bajarishning oson usuli castingdan foydalanish, lekin TypeScript ham ! operatorini qulay qisqartma sifatida taqdim etadi.

Misol:

function getValue(): string | undefined {
  return 'hello';
}
 
let value = getValue();
console.log('value length: ' + value!.length);

Casting kabi, bu xavfli bo'lishi mumkin va ehtiyotkorlik bilan foydalanish kerak.

Array Bounds Handling

StrictNullChecks yoqilgan bo'lsa ham, TypeScript standart bo'yicha massivga kirish hech qachon undefined qaytaradi deb hisoblaydi (agar undefined massiv turining qismi bo'lmasa).

Bu xatti-harakatni o'zgartirish uchun noUncheckedIndexedAccess konfiguratsiyasidan foydalanish mumkin.

Misol:

let array: number[] = [1, 2, 3];
let value = array[0]; // `noUncheckedIndexedAccess` bilan bu `number | undefined` turiga ega bo'ladi

Ushbu sahifada

GitHubda tahrirlash