FluidFramework icon indicating copy to clipboard operation
FluidFramework copied to clipboard

build(server): Bump node types to latest v18

Open tylerbutler opened this issue 1 year ago • 1 comments

Bumps server to use the latest v18 node types, 18.19.36. This causes a build break:

packages/services-shared build:compile: src/socketIoServer.ts:318:18 - error TS2769: No overload matches this call.
packages/services-shared build:compile:   Overload 1 of 2, '(intervalId: string | number | Timeout | undefined): void', gave the following error.
packages/services-shared build:compile:     Argument of type 'Timer | undefined' is not assignable to parameter of type 'string | number | Timeout | undefined'.
packages/services-shared build:compile:       Type 'Timer' is not assignable to type 'string | number | Timeout | undefined'.
packages/services-shared build:compile:         Property '[Symbol.dispose]' is missing in type 'Timer' but required in type 'Timeout'.
packages/services-shared build:compile:   Overload 2 of 2, '(id: number | undefined): void', gave the following error.
packages/services-shared build:compile:     Argument of type 'Timer | undefined' is not assignable to parameter of type 'number | undefined'.
packages/services-shared build:compile:       Type 'Timer' is not assignable to type 'number'.
packages/services-shared build:compile: 318    clearInterval(this.pingPongLatencyInterval);
packages/services-shared build:compile:                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
packages/services-shared build:compile:   ../../node_modules/.pnpm/@[email protected]/node_modules/@types/node/timers.d.ts:76:17
packages/services-shared build:compile:     76                 [Symbol.dispose](): void;
packages/services-shared build:compile:                        ~~~~~~~~~~~~~~~~~~~~~~~~~
packages/services-shared build:compile:     '[Symbol.dispose]' is declared here.
packages/services-shared build:compile: Found 1 error in src/socketIoServer.ts:318
packages/services-shared build:compile: Faile

tylerbutler avatar Jun 18 '24 22:06 tylerbutler

@tylerbutler I added that type very recently in #21428 because it appeared to be the same as ReturnType<typeof setInterval>

image

To resolve this, you should be able to just change NodeJs.Timer to ReturnType<typeof setInterval> or number, whichever feels best to you.

znewton avatar Jun 19 '24 16:06 znewton

This will unblock bumping build-tools deps in server.

tylerbutler avatar Jul 08 '24 20:07 tylerbutler