логотип PurpleSchool
логотип PurpleSchool

Null и Undefined в TypeScript

Автор

Дмитрий Нечаев

Введение

В JavaScript есть два примитивных значения, используемых для сигнализации об отсутствии или неинициализированном значении: null и undefined.

В TypeScript есть два соответствующих типа с такими же именами. Поведение этих типов зависит от того, включена ли у вас опция strictNullChecks.

Понимание различий между null и undefined в TypeScript, а также умение обрабатывать эти значения, крайне важно для предотвращения ошибок времени выполнения. TypeScript предоставляет различные инструменты для работы с null и undefined, такие как strict null checks и optional chaining. Если вы хотите углубить свои знания о null и undefined в TypeScript, приходите на наш большой курс TypeScript с нуля. На курсе 192 уроков и 17 упражнений, AI-тренажеры для безлимитной практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.

Выключенный strictNullChecks

При отключенной strictNullChecks, к значениям, которые могут быть нулевыми или неопределенными, по-прежнему можно обращаться нормально, а значения null и undefined могут быть присвоены свойству любого типа. Это похоже на то, как ведут себя языки без проверки нуля (например, C#, Java). Отсутствие проверки этих значений, как правило, является основным источником ошибок; мы всегда рекомендуем включать strictNullChecks, если это целесообразно в их кодовой базе.

Включенный strictNullChecks

При включенной strictNullChecks, когда значение является null или undefined, вам нужно будет проверить наличие этих значений, прежде чем использовать методы или свойства для этого значения. Точно так же, как проверка на неопределенность перед использованием необязательного свойства, мы можем использовать сужение для проверки значений, которые могут быть null:

function doSomething(x: string | null) {
  if (x === null) {
    // ничего не делай
  } else {
    console.log("Привет, " + x.toUpperCase());
  }
}

Оператор утверждения non-null (Postfix !)

В TypeScript также есть специальный синтаксис для удаления null и undefined из типа без явной проверки. Запись ! после любого выражения фактически является утверждением типа, что значение не является null или undefined:

function liveDangerously(x?: number | null) {
  // Нет ошибки
  console.log(x!.toFixed());
}

Как и другие утверждения типа, это не меняет поведение вашего кода во время выполнения, поэтому важно использовать ! только тогда, когда вы знаете, что значение не может быть null или undefined.

null и undefined часто становятся источником ошибок, но TypeScript предоставляет инструменты для их эффективной обработки. Освойте техники работы с null и undefined на курсе TypeScript с нуля. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в TypeScript прямо сегодня.

Стрелочка влевоSymbols в TypeScriptСужение типов (Narrowing) в TypeScriptСтрелочка вправо

Постройте личный план изучения Typescript до уровня Middle — бесплатно!

Typescript — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по Typescript

Открыть базу знаний

Лучшие курсы по теме

изображение курса

TypeScript с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

CSS Flexbox

Антон Ларичев
Гарантия
Бонусы
иконка звёздочки рейтинга4.9
бесплатно
Подробнее
изображение курса

Next.js - с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее

Отправить комментарий