如何在TypeScript中修改已声明的第三方库接口类型?
解决方案
你需要用TS的模块补充声明特性实现第三方类型扩展,不需要用extends继承同名接口,具体操作如下:
- 在你的项目中新建自定义类型声明文件,比如命名为
src/gun-augment.d.ts - 在文件中写入以下内容:
// 先引入原gun模块的类型定义 import 'gun'; // 声明对gun模块的类型补充 declare module 'gun' { // 直接定义同名接口,TS会自动和原有@types/gun中的接口定义合并 interface IGunChainReference { bind(): any; } }
- 确认你的
tsconfig.json中的include配置包含了这个声明文件,比如配置了"include": ["src/**/*"]就无需额外调整。
这个方案不会出现循环继承报错,你新增的bind方法类型会自动合并到原有IGunChainReference类型中,和你直接修改@types/gun/index.ts的效果完全一致。
内容的提问来源于stack exchange,提问作者Ian
相关产品推荐
相关产品推荐

