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

а. Несовместимые типы:Согласно приведенному ниже коду, мы получаем TypeError при выполнении метода flip, но получаем вывод при выполнении метода toLowerCase.

Приведенный выше сценарий будет выглядеть очевидным для опытного программиста Javascript, поскольку переменная «message» имеет тип «string» и не содержит никакого метода с именем «flip», и, следовательно, механизм выполнения Javascript счел это бессмысленным и выдал ошибку TypeError. во время выполнения.

б. Несуществующий метод: в соответствии с приведенным ниже кодом мы пытаемся получить доступ к методу, который не связан с объектом «человек», тогда JS Engine выдаст ошибку TypeError.

в. Изменение неизменяемого значения:Согласно приведенному ниже коду, мы пытаемся изменить значение, присвоенное постоянной переменной, и это приводит к ошибке TypeError.

Вышеупомянутые сценарии широко известны как TypeError, и они возникают во время выполнения. Согласно документации MDN, TypeError определяется как «Объект TypeError представляет собой ошибку, когда операция не может быть выполнена, обычно (но не исключительно), когда значение не соответствует ожидаемому типу.

Значок TypeError может выдаваться, когда:

  • операнд или аргумент, переданный функции, несовместим с типом, ожидаемым этим оператором или функцией; или
  • при попытке изменить значение, которое нельзя изменить; или
  • при попытке использовать значение ненадлежащим образом».

д. Доступ к несуществующей функции/переменной: если мы пытаемся получить доступ к функции и ссылающейся на нее необъявленной переменной в RHS, будет выдано сообщение ReferenceError. Например: в соответствии с приведенным ниже сценарием мы пытаемся получить доступ к несуществующей функции «fu», возникает ошибка ссылки.

Согласно документации MDN, ошибка ссылки определяется как «Объект ReferenceError представляет ошибку при ссылке на переменную, которая не существует (или еще не была инициализирована) в текущей области.»

Почему TypeScript?

Как мы уже видели, в JS есть две основные ошибки времени выполнения: TypeError и ReferenceError. Эти ошибки возникают во время выполнения, поскольку JSEngine проверяет их во время выполнения. TypeScript — это средство проверки статических типов, и оно в основном помогает найти все эти ошибки времени выполнения за счет фазы компиляции оболочки. Давайте рассмотрим, как TypeScript помогает в описанных выше сценариях, в следующей статье.