Typescript — объявленная переменная не определена, когда скрипт не запускается

#angular #typescript

#angular #typescript

Вопрос:

Я объявляю переменную, которую должен запускать сторонний скрипт, и создаю эту переменную для window . Однако, если скрипт не запускается, объявленная переменная считается не определенной.

Пример

 declare let thirdPartyApi: any;
...
if (thirdPartyApi) {
...
  

Но я получаю сообщение об ошибке при falsy проверке:

 ReferenceError: thirdPartyApi is not defined
  

Есть ли способ иметь объявленную переменную, которая всегда считается определенной?

Комментарии:

1. Нет. Вот почему это ключевое слово is declare . Раньше он сообщал TypeScript о чем-то, определенном в другом месте. Используйте typeof thirdPartyApi !== "undefined" . В любом случае это ошибка времени выполнения, поэтому заключительная часть вашего вопроса бессмысленна.

2. @AluanHaddad Спасибо за разъяснение. Мое предположение о выполнении ложной проверки было бы таким же, как для typeof .

Ответ №1:

Нет необходимости использовать declare ключевое слово перед инициализацией переменной в angular. Вы можете просто использовать следующее…

 let thirdPartyApi: any;

if (thirdPartyApi != undefined amp;amp; thirdPartyApi != null) {
   //data exist in variable
}else{
   //data not exist
}
  

Комментарии:

1. Когда я делаю let thirdPartyApi: any; и скрипт запускается, thirdPartyApi не определено.

2. Какой angular? Я ничего не вижу в вопросе об этом.