Полное руководство по типам ошибок в TypeScript: объяснение на примерах кода

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

  1. Синтаксические ошибки.
    Синтаксические ошибки возникают, когда код нарушает грамматические правила языка. TypeScript, будучи надмножеством JavaScript, наследует те же правила синтаксиса. Давайте рассмотрим пример:
function greeting(): string {
  return "Hello, World!"
}
console.log(greeting();

В этом фрагменте кода отсутствует закрывающая скобка в операторе console.log. TypeScript выдаст синтаксическую ошибку, указывающую на отсутствие закрывающей скобки.

  1. Ошибки типов.
    Ошибки типов возникают, когда существует несоответствие между ожидаемыми и фактическими типами переменных или параметров функции. Система типов TypeScript помогает выявлять и предотвращать эти ошибки. Вот пример:
function addNumbers(a: number, b: number): number {
  return a + b;
}
addNumbers(5, "10");

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

  1. Ошибки ссылок.
    Ошибки ссылок возникают, когда мы пытаемся получить доступ к переменным или функциям, которые не определены или выходят за рамки области действия. Рассмотрим следующий пример:
function printMessage(): void {
  console.log(message);
}
printMessage();

В этом фрагменте кода переменная messageне определена в области действия функции printMessage, что приводит к ошибке ссылки.

  1. Ошибки с нулевым значением и неопределенным значением.
    Ошибки с нулевым значением и неопределенным значением возникают, когда мы пытаемся получить доступ к свойствам или вызвать методы для переменных, которые имеют значение NULL или неопределенные. TypeScript предоставляет механизмы для обработки этих ошибок. Вот пример:
let name: string | undefined = undefined;
console.log(name.length);

В этом случае переменная nameне определена, и попытка доступа к свойству lengthприведет к ошибке null/unknown.

  1. Ошибки обещаний.
    Ошибки обещаний возникают, когда обещания не обрабатываются должным образом с помощью блоков thenи catchили когда обещания отклоняются. TypeScript обеспечивает проверку синтаксиса и типов для эффективной обработки ошибок обещаний. Рассмотрим следующий пример:
const fetchData = (): Promise<string> => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      reject("Error: Failed to fetch data");
    }, 2000);
  });
};
fetchData()
  .then((data) => {
    console.log(data);
  })
  .catch((error) => {
    console.error(error);
  });

В этом фрагменте кода функция fetchDataвозвращает обещание, которое намеренно отклонено после задержки. Блок catchиспользуется для обработки ошибки и регистрации соответствующего сообщения.

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