我想从模块内向 Typescript (1.8) 中的数组原型添加一个函数。
我正在更改 utils.ts 文件中的原型:
declare global {
interface Array<T> {
remove(obj: any): void;
}
}
Array.prototype.remove = function(obj) {
var idx = this.indexOf(obj);
if (idx > -1) {
this.splice(idx, 1);
}
}
现在我想在我的 main.ts 文件中全局应用该更改,如下所示:
import {Array<T>.remove} from "./utils.ts"
let arr = ["an", "array"];
arr.remove("array");
我可以导入接口声明,但对 Array 原型的更改在 main.ts 文件中不可用。如何对原型进行更改并将其全局应用或以某种方式导入“删除”功能?
这对我有用:
test.ts:
export {};
declare global {
interface Array<T> {
remove(obj: any): void;
}
}
Array.prototype.remove = function(obj) {
var idx = this.indexOf(obj);
if (idx > -1) {
this.splice(idx, 1);
}
}
测试2.ts:
import "./test";
let arr = ["an", "array"];
arr.remove("array");
console.log(arr);
编译并运行:
tsc -m "commonjs" ./test2.ts
node ./test2.js
Output:
[ 'an' ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)