You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移TS代码时,如何为Function.prototype声明适配任意签名的for方法?

解决Function.prototype.bind.for的TypeScript全局声明问题

直接修改global.d.ts,通过泛型约束实现对任意函数签名的适配,具体代码如下:

declare global {
  interface Function {
    /**
     * 绑定函数上下文,返回与原函数签名一致的绑定函数
     * @param thisArg 要绑定的上下文对象
     */
    for<T extends any[], R>(thisArg: any): (...args: T) => R;
  }
}

export {};

说明:

  • 泛型T代表原函数的参数类型数组,R代表原函数的返回值类型,TypeScript会自动根据调用的函数推导这两个泛型的具体类型
  • 这样定义后,不管是调用this._addHeaders.for(this)还是事件绑定函数(如buttonClickHandler.for(this)),TypeScript都会正确识别绑定后函数的参数和返回类型,避免编译错误
  • 完全兼容你提到的“返回固定绑定方法用于移除监听”的场景,因为绑定后的函数类型与原函数完全一致,符合事件监听/移除的类型要求

内容的提问来源于stack exchange,提问作者CheloXL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 06:35:54