javascript - 在 TypeScript 中扩展 AngularJs 的角度全局对象
问题描述
我将我的打字稿版本升级到 3.8.3
我的项目是用 AngularJS 编写的,包含.js
和.ts
文件。
我有一个遗留代码,它扩展了angular global object
2 个函数。
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;
}
}
我错过了什么?
解决方案
你离它很近,但它是这样的:
import angular from 'angular';
declare module angular {
interface IAngularStatic {
isUndefinedOrNull: (any) => boolean;
isDefinedAndNotNull: (any) => boolean;
}
}
但是,我不推荐这种方法,而是建议重构以在需要时使用简单的导入函数,并使用新的打字稿功能,如空合并运算符??
推荐阅读
- javascript - JQuery:在一行中查找最后一个组件
- java - java中的数组越界异常
- html - 当有滚动时,div覆盖不适用于整个页面
- dictionary - 将字典传递给数组python
- php - Bitcoind 返回错误“JSON 值不是预期的数组”,使用 easybitcoin.php 调用 sendmany()
- android - 从 Android 手机上的 android studio 运行后,应用程序只会打开和关闭。
- html - 填充内容div的剩余高度
- office365 - 可以将两个 Outlook Web 插件放在一组中
- java - 带有 Angular 5 的 Spring Boot Websocket 安全性
- windows - 如何使用 powershell 禁用防病毒和启用 Windows Defender