diff --git a/src/use-observable.ts b/src/use-observable.ts index 2ed6858e..2ce08983 100644 --- a/src/use-observable.ts +++ b/src/use-observable.ts @@ -4,20 +4,13 @@ import useConstant from 'use-constant' import { RestrictArray } from './type' -export type InputFactory = Inputs extends undefined - ? (state$: Observable) => Observable - : (inputs$: Observable>, state$: Observable) => Observable - -export function useObservable(inputFactory: InputFactory): State | null -export function useObservable(inputFactory: InputFactory, initialState: State): State -export function useObservable( - inputFactory: InputFactory, - initialState: State, - inputs: RestrictArray, -): State - +export type InputFactory = (state$: Observable) => Observable; +export type InputFactoryWithInputs = (inputs$: Observable>, state$: Observable) => Observable; +export function useObservable(inputFactory: InputFactory): State | null; +export function useObservable(inputFactory: InputFactory, initialState: State): State; +export function useObservable(inputFactory: InputFactoryWithInputs, initialState: State, inputs: RestrictArray): State; export function useObservable>( - inputFactory: InputFactory, + inputFactory: InputFactoryWithInputs, initialState?: State, inputs?: RestrictArray, ): State | null { @@ -38,7 +31,7 @@ export function useObservable>( state$: Observable, ) => Observable)(inputs$, state$) as BehaviorSubject } else { - output$ = (inputFactory as (state$: Observable) => Observable)( + output$ = (inputFactory as unknown as (state$: Observable) => Observable)( state$, ) as BehaviorSubject }