File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -47,7 +47,7 @@ describe('createEffect()', () => {
4747 expectSnippet ( `
4848 const effect = createEffect(() => ({ foo: 'a' }), { dispatch: false });
4949 ` ) . toFail (
50- / T y p e ' { f o o : s t r i n g ; } ' i s n o t a s s i g n a b l e t o t y p e ' O b s e r v a b l e < u n k n o w n > | ( ( ...a r g s : a n y [ ] ) = > O b s e r v a b l e < u n k n o w n > ) ' ./
50+ / T y p e ' { f o o : s t r i n g ; } ' i s n o t a s s i g n a b l e t o t y p e ' O b s e r v a b l e < { } > | ( ( ...a r g s : a n y [ ] ) = > O b s e r v a b l e < { } > ) ' ./
5151 ) ;
5252 } ) ;
5353 } ) ;
Original file line number Diff line number Diff line change @@ -8,10 +8,8 @@ interface CreateEffectMetadata {
88 [ CREATE_EFFECT_METADATA_KEY ] : EffectConfig ;
99}
1010
11- type DispatchType < T > = T extends { dispatch : infer U } ? U : unknown ;
12- type ObservableReturnType < T > = T extends false
13- ? Observable < unknown >
14- : Observable < Action > ;
11+ type DispatchType < T > = T extends { dispatch : infer U } ? U : true ;
12+ type ObservableType < T , OriginalType > = T extends false ? OriginalType : Action ;
1513/**
1614 * @description
1715 * Creates an effect from an `Observable` and an `EffectConfig`.
@@ -46,9 +44,9 @@ type ObservableReturnType<T> = T extends false
4644 */
4745export function createEffect <
4846 C extends EffectConfig ,
49- T extends DispatchType < C > ,
50- O extends ObservableReturnType < T > ,
51- R extends O | ( ( ...args : any [ ] ) => O )
47+ DT extends DispatchType < C > ,
48+ OT extends ObservableType < DT , OT > ,
49+ R extends Observable < OT > | ( ( ...args : any [ ] ) => Observable < OT > )
5250> ( source : ( ) => R , config ?: Partial < C > ) : R & CreateEffectMetadata {
5351 const effect = source ( ) ;
5452 const value : EffectConfig = {
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ export interface EffectConfig {
1313 resubscribeOnError ?: boolean ;
1414}
1515
16- export const DEFAULT_EFFECT_CONFIG : Required < EffectConfig > = {
16+ export const DEFAULT_EFFECT_CONFIG : Readonly < Required < EffectConfig > > = {
1717 dispatch : true ,
1818 resubscribeOnError : true ,
1919} ;
You can’t perform that action at this time.
0 commit comments