расширить AngularJs angular глобальный объект в TypeScript - PullRequest
0 голосов
/ 26 апреля 2020

Я обновил свою версию машинописи до 3.8.3

, мой проект написан с AngularJS и включает в себя .js и .ts файлы.

У меня есть устаревший код, который расширяет angular global object двумя функциями.

angular.isUndefinedOrNull = function (val) {
    ...
};
angular.isDefinedAndNotNull = function (val) {
    ...
}

после обновления версии машинописного текста у меня появляется это сообщение об ошибке:

Property 'isDefinedAndNotNull' does not exist on type 'IAngularStatic'

Я понимаю, что мне нужно создать расширенный интерфейс для angular объекта, но я борюсь с тем, как, все, что я пытаюсь, не удается.

попытался добавить файл global.d.ts в root каталог со следующим:

declare namespace angular {
    interface IAngularStatic {
        isUndefinedOrNull: (any) => boolean;
        isDefinedAndNotNull: (any) => boolean;
    }
}

что мне не хватает?

1 Ответ

0 голосов
/ 27 апреля 2020

вы близки к этому, но это так:

import angular from 'angular';

declare module angular {
    interface IAngularStatic {
        isUndefinedOrNull: (any) => boolean;
        isDefinedAndNotNull: (any) => boolean;
    }
}

однако я бы не рекомендовал этот подход и вместо этого предложил бы рефакторинг для использования простых импортированных функций, где это необходимо, и использования newi sh функции машинописи, такие как нулевой оператор слияния ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...