在TypeScript中扩展AngularJs的角度全局对象

问题描述 投票:0回答:1

我将打字稿版本升级到3.8.3

我的项目是使用AngularJS编写的,并且包含.js.ts文件。

我有一个继承代码,使用2个功能扩展了angular global object

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

升级打字稿版本后,我收到此错误消息:

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

[我了解我需要为angular对象创建一个扩展接口,但是我正在为如何做而苦苦挣扎,我尝试的所有方法都不会成功。

尝试使用以下命令将global.d.ts文件添加到根目录中:

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

我想念什么?

javascript angularjs typescript typing
1个回答
0
投票

您接近它,但它是这样的:

import angular from 'angular';

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

但是,我不推荐这种方法,而是建议重构以在需要的地方使用简单的导入函数,并使用诸如空合并运算符??等新的打字稿功能>

© www.soinside.com 2019 - 2024. All rights reserved.