Skip to content

Commit d823c70

Browse files
author
Sebastian Silbermann
committed
Fix 4.9 compat issues
Fixes ``` Error: /home/runner/work/DefinitelyTyped/DefinitelyTyped/types/react-dom/test/canary-tests.tsx:158:9 ERROR: 158:9 expect [email protected] expected type to be: number got: 0 ERROR: 158:22 expect Compile error in [email protected] but not in [email protected]. Fix by adding '"minimumTypeScriptVersion": "5.0"' to package.json. No overload matches this call. Overload 1 of 2, '(action: (state: number) => number | Promise<number>, initialState: number, permalink?: string | undefined): [state: number, dispatch: () => void]', gave the following error. Argument of type '(prevState: 0) => Promise<number>' is not assignable to parameter of type '(state: number) => number | Promise<number>'. Types of parameters 'prevState' and 'state' are incompatible. Type 'number' is not assignable to type '0'. Overload 2 of 2, '(action: (state: number, payload: unknown) => number | Promise<number>, initialState: number, permalink?: string | undefined): [state: number, dispatch: (payload: unknown) => void]', gave the following error. Argument of type '(prevState: 0) => Promise<number>' is not assignable to parameter of type '(state: number, payload: unknown) => number | Promise<number>'. Types of parameters 'prevState' and 'state' are incompatible. Type 'number' is not assignable to type '0'. at testTypesVersion (/home/runner/work/DefinitelyTyped/DefinitelyTyped/node_modules/.pnpm/@DefinitelyTyped[email protected][email protected]/node_modules/@definitelytyped/dtslint/src/index.ts:202:11) at runTests (/home/runner/work/DefinitelyTyped/DefinitelyTyped/node_modules/.pnpm/@DefinitelyTyped[email protected][email protected]/node_modules/@definitelytyped/dtslint/src/index.ts:170:7)  ELIFECYCLE  Command failed with exit code 1. ```
1 parent dc2f1a0 commit d823c70

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

types/react-dom/test/canary-tests.tsx

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ function preloadTest() {
7373
ReactDOM.prefetchDNS("foo");
7474
ReactDOM.prefetchDNS(
7575
"bar", // @ts-expect-error prefetchDNS does not accept any options at the moment
76-
{},
76+
{}
7777
);
7878

7979
// @ts-expect-error
@@ -135,32 +135,35 @@ function formTest() {
135135
] = useFormState(action, 1);
136136

137137
function actionExpectingPromiseState(state: Promise<number>) {
138-
return state.then(s => s + 1);
138+
return state.then((s) => s + 1);
139139
}
140140

141141
useFormState(
142142
// @ts-expect-error
143143
actionExpectingPromiseState,
144-
Promise.resolve(1),
144+
Promise.resolve(1)
145145
);
146146
useFormState(
147147
action,
148148
// @ts-expect-error
149-
Promise.resolve(1),
149+
Promise.resolve(1)
150150
);
151151
// $ExpectType number
152-
useFormState<Promise<number>>(
153-
action,
154-
1,
155-
)[0];
152+
useFormState<Promise<number>>(action, 1)[0];
156153

157-
// $ExpectType number
158-
useFormState(async (prevState) => prevState + 1, 0)[0];
154+
useFormState(
155+
async (
156+
prevState: // only needed in TypeScript 4.9
157+
// 5.0 infers `number` whereas 4.9 infers `0`
158+
number
159+
) => prevState + 1,
160+
0
161+
)[0];
159162
// $ExpectType number
160163
useFormState(
161164
async (prevState) => prevState + 1,
162165
// @ts-expect-error
163-
Promise.resolve(0),
166+
Promise.resolve(0)
164167
)[0];
165168

166169
return (

0 commit comments

Comments
 (0)