TypeScript null va undefined


TypeScript null yoki undefined qiymatlari bilan ishlash uchun kuchli tizimga ega.

Standart holatda null va undefined bilan ishlash o‘chirilgan bo‘ladi, uni strictNullChecks ni true qiymatiga o‘rnatish orqali yoqish mumkin.

Ushbu sahifaning qolgan qismi strictNullChecks yoqilganda amal qiladi.


ULASHISH

Turlari

null va undefined ibtidoiy turlar bo‘lib, boshqa turlar kabi ishlatilishi mumkin, masalan, string .

Misol

let value: string | undefined | null = null;
value = 'hello';
value = undefined;
O‘zingiz sinab ko‘ring »

strictNullChecks yoqilganda, TypeScript qiymatlarni o‘rnatishni talab qiladi agar turga undefined aniq qo‘shilmagan bo‘lsa.



Ixtiyoriy zanjir

Majburiy emas zanjirlash - bu TypeScript-ning null ishlovi bilan yaxshi ishlaydigan JavaScript xususiyati.

U ixcham sintaksisdan foydalanib, mavjud yoki bo‘lmasligi mumkin bo‘lgan obyekt xususiyatlariga kirish imkonini beradi.

Xususiyatlarga kirishda undan ?. operatori bilan foydalanish mumkin.

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); // Prints 'No yard'
O‘zingiz sinab ko‘ring »

Nully Coalescing

Nullish birlashtirish JavaScript-ning yana bir xususiyati bo‘lib, u TypeScript-ning null ishlovi bilan ham yaxshi ishlaydi.

Bu null yoki undefined bilan ishlashda, ayniqsa, orqaga qaytishga ega iboralarni yozish imkonini beradi.

Bu ifodada boshqa noto‘g‘ri qiymatlar paydo bo‘lishi mumkin bo‘lsa, lekin hali ham amalda bo‘lsa foydali bo‘ladi.

U && operatoridan foydalanishga o‘xshash ifodada ?? operatori bilan ishlatilishi mumkin.

Misol

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

printMileage(null); // Prints 'Mileage: Not Available'
printMileage(0); // Prints 'Mileage: 0'
O‘zingiz sinab ko‘ring »

Null tasdiqlash

TypeScript-ning xulosa chiqarish tizimi mukammal emas, ba’zida qiymatning null yoki undefined bo‘lish imkoniyatini e’tiborsiz qoldirish mantiqiy bo‘ladi.

Buni amalga oshirishning oson yo‘li - kastingdan foydalanish, ammo TypeScript qulay yorliq sifatida ! operatorini ham taqdim etadi.

Misol

function getValue(): string | undefined {
  return 'hello';
}
let value = getValue();
console.log('value length: ' + value!.length);
O‘zingiz sinab ko‘ring »

Xuddi quyma kabi, bu xavfli bo‘lishi mumkin va ehtiyotkorlik bilan foydalanish kerak.


Massiv chegaralari bilan ishlash

strictNullChecks yoqilgan bo‘lsa ham, TypeScript standart holatda massiv elementiga murojaat hech qachon undefined qaytarmaydi deb hisoblaydi (agar undefined massiv tipining bir qismi bo‘lmasa).

Ushbu xatti-harakatni o‘zgartirish uchun noUncheckedIndexedAccess konfiguratsiyasidan foydalanish mumkin.

Misol

let array: number[] = [1, 2, 3];
let value = array[0]; // with `noUncheckedIndexedAccess` this has the type `number | undefined`
O‘zingiz sinab ko‘ring »



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!