socket.io icon indicating copy to clipboard operation
socket.io copied to clipboard

After updating: Could not find a declaration file for module 'ws'

Open aayla-secura opened this issue 5 months ago • 1 comments

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

aayla-secura avatar Sep 28 '24 14:09 aayla-secura