File tree 2 files changed +24
-1
lines changed
2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -66,7 +66,7 @@ export type PreloadedState<S> = Required<S> extends EmptyObject
66
66
? {
67
67
[ K in keyof S1 ] ?: S1 [ K ] extends object ? PreloadedState < S1 [ K ] > : S1 [ K ]
68
68
}
69
- : never
69
+ : S
70
70
: {
71
71
[ K in keyof S ] : S [ K ] extends string | number | boolean | symbol
72
72
? S [ K ]
Original file line number Diff line number Diff line change 8
8
StoreEnhancerStoreCreator ,
9
9
Unsubscribe ,
10
10
Observer ,
11
+ PreloadedState ,
12
+ CombinedState ,
11
13
} from 'redux'
12
14
// @ts -ignore
13
15
import $$observable from '../src/utils/symbol-observable'
@@ -151,3 +153,24 @@ const observer: Observer<State> = {
151
153
}
152
154
const unsubscribeFromObservable = observable . subscribe ( observer ) . unsubscribe
153
155
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' ]
You can’t perform that action at this time.
0 commit comments