Как использовать оператор «!» в TypeScript для более чистого и эффективного кода

При работе с TypeScript вы могли столкнуться с оператором !. Оператор ! — это ненулевой оператор утверждения, который сообщает компилятору, что переменная или свойство не являются нулевыми или неопределенными и должны рассматриваться как таковые. В этой статье мы обсудим, как использовать оператор ! в TypeScript и как правильно его использовать.

Знакомство с ненулевым оператором утверждения

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

Использование оператора ненулевого утверждения

Вы можете использовать оператор !, чтобы утверждать, что переменная или свойство не являются нулевыми или неопределенными. Вот пример:

function printName(name: string | null): void {
  console.log(name!.toUpperCase());
}

printName(null); // throws an error
printName('john'); // logs JOHN

В приведенном выше примере у нас есть функция printName, которая принимает строковое или нулевое значение в качестве аргумента. Мы используем оператор !, чтобы сообщить компилятору, что параметр name не является нулевым или неопределенным. Если мы передадим нулевое значение функции printName, она выдаст ошибку во время компиляции, потому что мы используем оператор !, чтобы подтвердить, что значение не является нулевым или неопределенным.

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

Правильное использование оператора ненулевого утверждения

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

  1. Используйте оператор ! только в том случае, если вы уверены, что значение не является нулевым или неопределенным.
  2. Избегайте использования оператора ! в сложных выражениях. Вместо этого присвойте выражение переменной, а затем используйте оператор ! для этой переменной.
  3. Используйте оператор ! экономно. Лучше использовать защиту типа, чтобы сузить тип переменной или свойства.

Вот пример правильного использования оператора !:

interface User {
  name: string;
  age?: number;
}

function printUserInfo(user: User): void {
  const { name, age } = user;
  
  if (!age) {
    console.log(`Name: ${name}`);
  } else {
    console.log(`Name: ${name}, Age: ${age}`);
  }
}

const user1 = { name: 'John', age: 30 };
const user2 = { name: 'Jane' };

printUserInfo(user1); // logs Name: John, Age: 30
printUserInfo(user2); // logs Name: Jane

В приведенном выше примере у нас есть функция printUserInfo, которая принимает объект User в качестве аргумента. Мы используем оператор ! для свойства age, чтобы утверждать, что оно не является нулевым или неопределенным. Если свойство age имеет значение null или не определено, мы используем защиту типа, чтобы сузить тип объекта user.

Заключение

Оператор ! — это мощный инструмент в TypeScript, который может помочь вам избежать ошибок компиляции при работе с типами, допускающими значение NULL. Однако важно использовать его правильно.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Моя установка:

💻 Apple MacBook Pro M2 2023 г. — https://amzn.to/3N4uuQA

⌨️ Волшебная клавиатура Apple — https://amzn.to/40yo8vM

🖱 Apple Magic Mouse — https://amzn.to/40szCkx

🎧Биты от Dr. Dre Studio3 — https://amzn.to/3mUxgx8