Skip to content

Commit ef5e57e

Browse files
authored
Merge pull request #4078 from phryneas/fix-preloadedState
2 parents cf2f265 + 9ab0a70 commit ef5e57e

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

index.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export type PreloadedState<S> = Required<S> extends EmptyObject
6666
? {
6767
[K in keyof S1]?: S1[K] extends object ? PreloadedState<S1[K]> : S1[K]
6868
}
69-
: never
69+
: S
7070
: {
7171
[K in keyof S]: S[K] extends string | number | boolean | symbol
7272
? S[K]

test/typescript/store.ts

+23
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import {
88
StoreEnhancerStoreCreator,
99
Unsubscribe,
1010
Observer,
11+
PreloadedState,
12+
CombinedState,
1113
} from 'redux'
1214
// @ts-ignore
1315
import $$observable from '../src/utils/symbol-observable'
@@ -151,3 +153,24 @@ const observer: Observer<State> = {
151153
}
152154
const unsubscribeFromObservable = observable.subscribe(observer).unsubscribe
153155
unsubscribeFromObservable()
156+
157+
// some type tests for PreloadedState
158+
const ANY: any = {}
159+
const notNever: PreloadedState<{ key: unknown }>['key'] = ANY as unknown
160+
// typings:expect-error
161+
const isNever: PreloadedState<{ key: never }>['key'] = ANY as unknown
162+
const is5: 5 = ANY as PreloadedState<{ key: 5 }>['key']
163+
// typings:expect-error
164+
const isNot5: 5 = ANY as PreloadedState<{ key: 6 }>['key']
165+
const isNumber: number = ANY as PreloadedState<{ key: number }>['key']
166+
const isString: string = ANY as PreloadedState<{ key: string }>['key']
167+
const isNested: { nested: string } = ANY as PreloadedState<{
168+
key: { nested: string }
169+
}>['key']
170+
const isNestedOptional: { nested?: string } = ANY as PreloadedState<{
171+
key: CombinedState<{ nested: string }>
172+
}>['key']
173+
// typings:expect-error
174+
const isNestedReallyOptional: { nested: string } = ANY as PreloadedState<{
175+
key: CombinedState<{ nested: string }>
176+
}>['key']

0 commit comments

Comments
 (0)