فهرست سرفصل‌های TypeScript
خانه (Home) معرفی (Introduction) شروع سریع (Get Started) انواع ساده (Simple Types) تعریف صریح و استنتاج نوع (Explicit & Inference) انواع ویژه (Special Types) آرایه ها (Arrays) تاپل ها (Tuples) انواع شیء (Object Types) شمارشی ها (Enums) نام مستعار و اینترفیس ها (Aliases & Interfaces) انواع اتحادی (Union Types) توابع (Functions) تبدیل نوع (Casting) کلاس ها (Classes) جنریک های پایه (Basic Generics) انواع کاربردی (Utility Types) کلیدواژه keyof (Keyof) Null (Null) Definitely Typed (Definitely Typed) به روزرسانی های نسخه 5 (5 Updates) پیکربندی (Configuration) با Node.js (with Node.js) با React (with React) ابزارها (Tooling) انواع پیشرفته (Advanced Types) نگهبان های نوع (Type Guards) انواع شرطی (Conditional Types) انواع نگاشتی (Mapped Types) استنتاج نوع (Type Inference) انواع لیترال (Literal Types) فضای نام (Namespaces) امضاهای ایندکس (Index Signatures) ادغام اعلان ها (Declaration Merging) برنامه نویسی ناهمگام (Async Programming) دکوراتورها (Decorators) در پروژه های JS (in JS Projects) مهاجرت (Migration) مدیریت خطا (Error Handling) بهترین شیوه ها (Best Practices) ادیتور (Editor) تمرین ها (Exercises) آزمون (Quiz) سرفصل دوره (Syllabus) برنامه مطالعه (Study Plan) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
TypeScript

TypeScript — Null (Null)

آخرین بروزرسانی: 1404/08/14

Null (Null)

در تایپ اسکریپت، «Null» یعنی «هیچ چیز عمدی». همچنین «Undefined» یعنی «هنوز مقدار نگرفته». با تنظیم strictNullChecks رفتارها دقیق تر می شوند و خطاها زودتر دیده می شوند.

انواع Null و Undefined

هر دو «نوع اولیه (Primitive)» هستند. بنابراین می توانند در یونین ها کنار string و دیگر انواع بیایند.

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

مشاهده در ادیتور

هشدار: وقتی strictNullChecks فعال است، باید undefined را صریحاً در نوع بیاوری.

زنجیره اختیاری (Optional Chaining)

با عملگر ?. امن به ویژگی های شاید-نباشند دسترسی بگیر. اگر نباشند، نتیجه undefined می شود.

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);

مشاهده در ادیتور

ادغام نالی (Nullish Coalescing)

با عملگر ?? فقط وقتی مقدار null یا undefined است، جایگزین بده.

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

printMileage(null);
printMileage(0);

مشاهده در ادیتور

علامت تعجب! (Null Assertion)

عملگر ! به کامپایلر می گوید: «این مقدار نال نیست». بااحتیاط استفاده کن.

function getValue(): string | undefined {
  return 'hello';
}

let value2 = getValue();
console.log('value length: ' + value2!.length);

مشاهده در ادیتور

دسترسی به آرایه و Undefined

با گزینه noUncheckedIndexedAccess می توانی نوع دسترسی آرایه را دقیق تر کنی.

let array: number[] = [1, 2, 3];
let first = array[0];

مشاهده در ادیتور

گام های عملی کار با Null

  1. ابتدا strictNullChecks را روشن کن.
  2. سپس یونین های شامل Null را تعریف کن.
  3. بعد، از ?. و ?? برای دسترسی امن استفاده کن.

برای ادامه، صفحه کلیدواژه keyof و صفحه انواع کاربردی را ببین. همچنین یک لنگر داخلی با کلیدواژه Null نگه می داریم.

جمع بندی سریع

  • Null یعنی «هیچِ عمدی»، Undefined یعنی «مقدار نداده ایم».
  • با strictNullChecks مدیریت دقیق تر می شود.
  • ?. برای دسترسی امن استفاده کن.
  • ?? فقط نال/آندیفایند را جایگزین می کند.
  • ! خطرناک است؛ کم استفاده کن.