我扩展了函数原型(prototype),但 typescript 无法识别它。
Function.prototype.proc = function() {
var args, target, v;
var __slice = [].slice;
args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
target = this;
while (v = args.shift()) {
target = target(v);
}
return target;
};
// generated by coffee-script
var foo: (number) => (string) => number
= (a) => (b) => a * b.length;
console.log(foo.proc("first", "second"))
结果:tsc -e
The property 'proc' does not exist on value of type 'Function'
我如何扩展这个对象?
最佳答案
标准 typescript 库中有一个函数接口(interface),用于声明函数对象的成员。您需要使用您自己的插件将 proc 声明为该接口(interface)的成员,如下所示:
interface Function {
proc(...args: any[]): any;
}
需要从您打算使用“proc”的任何地方引用此接口(interface)。
关于javascript - 原型(prototype)如何在 typescript 上扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12766117/