TypeScript如何扩展ws库WebSocket类原型方法并修复类型报错
解决方案
- 首先确认你之前的扩展方案是完全可行的,模块扩展是TS官方提供的标准能力,完全支持对
@types/ws提供的类型定义做增量更新,之前报错是因为扩展代码里存在拼写错误,WebbSocket多写了一个字母b,修正后配合正确的配置即可生效。 - 修正后的完整扩展代码如下:
// WebSocketExtensions.ts import WebSocket from "ws"; declare module "ws" { // 接口名必须和@types/ws导出的WebSocket完全一致,不要多写b export interface WebSocket { customFunction(): void; } } // 原型方法不要用箭头函数,避免this指向丢失无法访问实例属性 WebSocket.prototype.customFunction = function() { console.log('自定义方法执行', this.url); };
- 检查
tsconfig.json配置,确保该扩展文件被TS识别:将扩展文件所在路径加入include数组,避免TS扫描时忽略该文件:
{ "compilerOptions": {/* 原有配置保持不变 */}, "include": ["src/**/*", "你的扩展文件存放路径/WebSocketExtensions.ts"] }
- 如果配置修正后依然提示类型错误,重启IDE的TS语言服务即可,VS Code可以按快捷键
Ctrl+Shift+P,选择「TypeScript: Restart TS Server」触发重启。
内容的提问来源于stack exchange,提问作者justpen
相关产品推荐
相关产品推荐

