javascript - 原型(prototype)如何在 typescript 上扩展?

标签 javascript typescript

我扩展了函数原型(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/

相关文章:

JavaScript 全局对象和全局作用域

javascript - Python vs JavaScript - UTC 时间与序数时间

reactjs - React svg xmlns :xlink identifier expected

javascript - 单击离开页面时加载图像

javascript - Kendo UI 和 AngularJS 多选 : Difference between ng-model and k-ng-model

javascript 如何通过 api 调用重定向 url 来获取 json 数据

javascript - 在自定义 typescript 类中覆盖 javascript Object toString()

javascript - 转换 Observable 中的数据

node.js - 剧作家自动化无法绕过位置弹出窗口

javascript - Typescript:属性 'constructor' 的类型不兼容