НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
TypeScript. Уроки для початківців

En Es De

TypeScript Null & Undefined


TypeScript має потужну систему для обробки значень null або undefined.

За умовчанням обробку null та undefined вимкнено, і її можна ввімкнути, установивши strictNullChecks на значення true.

Решта цієї сторінки стосується випадків, коли ввімкнено strictNullChecks.


Типи

null та undefined є примітивними типами і можуть використовуватися як інші типи, наприклад string.

Приклад

let value: string | undefined | null = null;
value = 'hello';
value = undefined;
Спробуйте самі »

Якщо strictNullChecks увімкнено, TypeScript вимагає встановлення значень, якщо до типу явно не додано undefined.


Додаткове з’єднання

Додаткове з’єднання — це функція JavaScript, яка добре працює з обробкою нульових значень у TypeScript. Це дозволяє отримати доступ до властивостей об’єкта, який може існувати або не існувати, за допомогою компактного синтаксису. Його можна використовувати з оператором ?. під час доступу до властивостей.

Приклад

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'
Спробуйте самі »

Nullish Coalescence - Нульова коалесценція

Nullish Coalescence — ще одна функція JavaScript, яка також добре працює з обробкою нульових значень у TypeScript. Це дозволяє писати вирази, які мають запасний варіант, особливо коли йдеться про null або undefined. Це корисно, коли у виразі можуть зустрічатися інші хибні значення, але вони залишаються дійсними. Це можна використовувати з оператором ?? у виразі, подібно до використання оператора &&.

Приклад

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

printMileage(null); // Prints 'Mileage: Not Available'
printMileage(0); // Друкує 'Mileage: 0'
Спробуйте самі »

Нульова інструкція

Система виводу TypeScript не є досконалою, іноді має сенс ігнорувати можливість значення null або undefined. Простий спосіб зробити це — використати кастинг, але TypeScript також надає оператор ! як зручний ярлик.

Приклад

function getValue(): string | undefined {
  return 'hello';
}
let value = getValue();
console.log('value length: ' + value!.length);
Спробуйте самі »

Так само як і кастинг, це може бути небезпечно, тому це слід використовувати обережно.


Обробка меж масиву

Навіть якщо strictNullChecks увімкнено, за замовчуванням TypeScript припускатиме, що доступ до масиву ніколи не повертатиме значення undefined (якщо undefined не є частиною типу масиву).

Конфігурацію noUncheckedIndexedAccess можна використати, щоб змінити цю поведінку.

Приклад

let array: number[] = [1, 2, 3];
let value = array[0]; // за допомогою `noUncheckedIndexedAccess` це має тип `number | undefined`
Спробуйте самі »


Коментарі