ts如何声明对内置对象的扩展方法

老项目迁移.有些库对Math进行了扩展,添加了add,sub等方法.
用的地方太多,ts-ignore不够用啊

进行了的尝试

  1. 添加types/index.d.ts,进行如下声明
export type MathExt = {
  add(number1: number, number2: number): number;
  // ...
};

export declare var Math: Math & MathExt;
阅读 5.4k
2 个回答

找到文档已解决
根目录添加types/index.d.ts

declare global {
  interface Math {
    add(number1: number, number2: number): number;
    // ...
  }
}

照着ts官方的定义写就是了(node_modules/typescript/lib/lib.es5.d.ts)

interface Math {
    add(number1: number, number2: number): number;
}
推荐问题