TypeScript: защита от неопределенного значения с помощью значений по умолчанию

В TypeScript работа с неопределенными значениями может быть распространенным сценарием. Чтобы предотвратить непредвиденные ошибки и обеспечить плавное выполнение, важно корректно обрабатывать неопределенные значения, предоставляя значения по умолчанию. В этой статье мы рассмотрим различные методы обработки неопределенных значений и установки значений по умолчанию в TypeScript.

Метод 1: использование логического оператора ИЛИ (||):
Один из самых простых способов установить значение по умолчанию для неопределенной переменной — использовать логический оператор ИЛИ (||). Этот оператор оценивает выражение левой части и возвращает его, если оно истинно, в противном случае он возвращает выражение правой части.

const name = undefined;
const defaultName = name || 'John Doe';
console.log(defaultName); // Output: John Doe

Метод 2: использование нулевого оператора объединения (??):
Нулевой оператор объединения (??) — это еще один вариант установки значений по умолчанию специально для нулевых или неопределенных переменных. Он возвращает выражение в правой части, только если левая часть равна нулю или неопределена, в отличие от логического оператора ИЛИ, который также учитывает ложные значения.

const age = undefined;
const defaultAge = age ?? 25;
console.log(defaultAge); // Output: 25

Метод 3. Использование тернарного оператора.
Тернарный оператор — это краткий способ условно установить значения по умолчанию на основе истинности переменной. Это позволяет вам указывать разные значения по умолчанию для разных условий.

const city = undefined;
const defaultCity = city ? city : 'New York';
console.log(defaultCity); // Output: New York

Метод 4: использование необязательного оператора объединения и нулевого объединения:
В TypeScript 3.7 и более поздних версиях вы можете использовать необязательный оператор объединения (?.) вместе с нулевым оператором объединения (??) для обработки свойств вложенных объектов, которые может быть неопределенным.

interface Person {
  name?: string;
  age?: number;
  address?: {
    city?: string;
  };
}
const person: Person = {};
const defaultCity = person?.address?.city ?? 'Unknown';
console.log(defaultCity); // Output: Unknown

Метод 5. Использование параметров по умолчанию в функциях.
При работе с функциями вы можете присвоить значения по умолчанию параметрам функции, используя синтаксис parameterName = defaultValue. Это гарантирует, что даже если параметр не указан или ему явно присвоено неопределенное значение, он вернется к значению по умолчанию.

function greet(name: string = 'Friend') {
  console.log(`Hello, ${name}!`);
}
greet(); // Output: Hello, Friend!
greet('Alice'); // Output: Hello, Alice!

Обработка неопределенных значений и предоставление значений по умолчанию имеют решающее значение для написания надежного кода TypeScript. В этой статье мы рассмотрели несколько методов достижения этой цели, в том числе логический оператор ИЛИ, нулевой оператор объединения, тернарный оператор, необязательное сцепление и параметры по умолчанию в функциях. Используя эти методы, вы можете гарантировать, что ваш код корректно обрабатывает неопределенные переменные и позволяет избежать непредвиденных ошибок.