socket.io
socket.io copied to clipboard
After updating: Could not find a declaration file for module 'ws'
Describe the bug
Probably related to #5201 but solution in there did not work in this case.
I just updated from socket.io-client v4.7.5 to v4.8.0 and I am now getting the following error during typescript compilation:
node_modules/engine.io-client/build/esm/transports/websocket.node.d.ts:12:108 - error TS7016: Could not find a declaration file for module 'ws'. '.../node_modules/engine.io-client/node_modules/ws/wrapper.mjs' implicitly has an 'any' type.
Try `npm i --save-dev @types/ws` if it exists or add a new declaration (.d.ts) file containing `declare module 'ws';`
12 createSocket(uri: string, protocols: string | string[] | undefined, opts: Record<string, any>): import("ws");
~~~~
Installing @types/ws results in a different error:
node_modules/engine.io-client/build/esm/transports/websocket.node.d.ts:12:101 - error TS1340: Module 'ws' does not refer to a type, but is used as a type here. Did you mean 'typeof import('ws')'?
12 createSocket(uri: string, protocols: string | string[] | undefined, opts: Record<string, any>): import("ws");
Reverting back to 4.7.5 works fine again.
My project is TypeScript with target: es2022 and module: preserve options. I'm doing
import { io } from "socket.io-client";
Expected behavior Type declarations should be included and compilation should not error.
Platform:
- OS: Ubuntu on Window Subsystem for Linux; Windows 11
node_modules/engine.io-client/build/esm/transports/websocket.node.d.ts:12:101 - error TS1340: Module 'ws' does not refer to a type, but is used as a type here. Did you mean 'typeof import('ws')'? 12 createSocket(uri: string, protocols: string | string[] | undefined, opts: Record<string, any>): import("ws");
This also happened to me when importing socket.io-client in an Angular app, when using "moduleResolution": "bundler". There is no issue in version 4.7.5.
This should be fixed by https://github.com/socketio/socket.io/commit/175a2c58c1bc37eb9b87f87df47e1f9388b01d55, included in [email protected]. Could you please check?
Thank you , indeed I no longer see the error after doing those updates.
This is not yet fixed in [email protected] which was published yesterday, as the target engine.io-client version was not updated.
Using package.json overrides to set the version explicitly to 6.6.2 works.