File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Expand file tree Collapse file tree 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
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 ]
Original file line number Diff line number Diff line change 88 StoreEnhancerStoreCreator ,
99 Unsubscribe ,
1010 Observer ,
11+ PreloadedState ,
12+ CombinedState ,
1113} from 'redux'
1214// @ts -ignore
1315import $$observable from '../src/utils/symbol-observable'
@@ -151,3 +153,24 @@ const observer: Observer<State> = {
151153}
152154const unsubscribeFromObservable = observable . subscribe ( observer ) . unsubscribe
153155unsubscribeFromObservable ( )
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