Skip to content

Commit 49e00b4

Browse files
authoredOct 4, 2023
Merge pull request #3777 from julian-ford/bugfix/copy-cat-ts-version-compat
2 parents ed7ce5e + 59b2de7 commit 49e00b4

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed
 

‎packages/toolkit/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"types": "dist/index.d.ts",
2929
"devDependencies": {
3030
"@microsoft/api-extractor": "^7.13.2",
31+
"@phryneas/ts-version": "^1.0.2",
3132
"@size-limit/preset-small-lib": "^4.11.0",
3233
"@testing-library/react": "^13.3.0",
3334
"@testing-library/user-event": "^13.1.5",

‎packages/toolkit/src/tests/createAsyncThunk.typetest.ts

+17-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import type {
1717
AsyncThunkFulfilledActionCreator,
1818
AsyncThunkRejectedActionCreator,
1919
} from '@internal/createAsyncThunk'
20+
import type { TSVersion } from '@phryneas/ts-version'
2021

2122
const ANY = {} as any
2223
const defaultDispatch = (() => {}) as ThunkDispatch<{}, any, AnyAction>
@@ -287,8 +288,22 @@ const anyAction = { type: 'foo' } as AnyAction
287288
// in that case, we have to forbid this behaviour or it will make arguments optional everywhere
288289
{
289290
const asyncThunk = createAsyncThunk('test', (arg?: number) => 0)
290-
expectType<(arg?: number) => any>(asyncThunk)
291-
asyncThunk()
291+
292+
// Per https://github.com/reduxjs/redux-toolkit/issues/3758#issuecomment-1742152774 , this is a bug in
293+
// TS 5.1 and 5.2, that is fixed in 5.3. Conditionally run the TS assertion here.
294+
type IsTS51Or52 = TSVersion.Major extends 5
295+
? TSVersion.Minor extends 1 | 2
296+
? true
297+
: false
298+
: false
299+
300+
type expectedType = IsTS51Or52 extends true
301+
? (arg: number) => any
302+
: (arg?: number) => any
303+
expectType<expectedType>(asyncThunk)
304+
// We _should_ be able to call this with no arguments, but we run into that error in 5.1 and 5.2.
305+
// Disabling this for now.
306+
// asyncThunk()
292307
asyncThunk(5)
293308
// @ts-expect-error
294309
asyncThunk('string')

‎yarn.lock

+8
Original file line numberDiff line numberDiff line change
@@ -6421,6 +6421,13 @@ __metadata:
64216421
languageName: node
64226422
linkType: hard
64236423

6424+
"@phryneas/ts-version@npm:^1.0.2":
6425+
version: 1.0.2
6426+
resolution: "@phryneas/ts-version@npm:1.0.2"
6427+
checksum: d51914a8ea35ff8b686a9379b9e9fe6d5b5feaf2e7511b880d2835015736e33bc82952bbc369918f251d4a755f32f4a9c4a34b0ec4dfdbc3e87a41d26401105c
6428+
languageName: node
6429+
linkType: hard
6430+
64246431
"@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.3":
64256432
version: 0.5.7
64266433
resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.7"
@@ -6554,6 +6561,7 @@ __metadata:
65546561
resolution: "@reduxjs/toolkit@workspace:packages/toolkit"
65556562
dependencies:
65566563
"@microsoft/api-extractor": ^7.13.2
6564+
"@phryneas/ts-version": ^1.0.2
65576565
"@size-limit/preset-small-lib": ^4.11.0
65586566
"@testing-library/react": ^13.3.0
65596567
"@testing-library/user-event": ^13.1.5

0 commit comments

Comments
 (0)
Please sign in to comment.