Дмитрий Нечаев
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 прямо сегодня.
Постройте личный план изучения Typescript до уровня Middle — бесплатно!
Typescript — часть карты развития Frontend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Бесплатные лекции
Все гайды по Typescript
Лучшие курсы по теме

TypeScript с нуля
Антон Ларичев
CSS Flexbox
Антон Ларичев