deox
Version:
Functional Type-safe Flux Standard Utilities
28 lines (27 loc) • 1.4 kB
TypeScript
import { AnyAction } from './create-action';
import { ActionCreator } from './create-action-creator';
import { ExtractAction } from './types';
/**
* Non-curried function
* @example
* const increment = createActionCreator('[Counter] increment')
* const decrement = createActionCreator('[Counter] decrement')
* isOfType('[Counter] increment', increment()) //=> true
* @example
* isOfType(['[Counter] increment', '[Counter] decrement'], increment()) //=> true
* @example
* isOfType(decrement(), increment()) //=> false
*/
export declare function isOfType<TSource extends AnyAction, TKey extends string | AnyAction | ActionCreator<AnyAction>, TSink extends TSource = ExtractAction<TSource, TKey>>(keys: TKey | ReadonlyArray<TKey>, action: TSource): action is TSink;
/**
* Curried function
* @example
* const increment = createActionCreator('[Counter] increment')
* const decrement = createActionCreator('[Counter] decrement')
* isOfType('[Counter] increment')(increment()) //=> true
* @example
* isOfType(['[Counter] increment', '[Counter] decrement'])(increment()) //=> true
* @example
* isOfType(decrement())(increment()) //=> false
*/
export declare function isOfType<TKey extends string | AnyAction | ActionCreator<AnyAction>>(keys: TKey | ReadonlyArray<TKey>): <TSource extends AnyAction, TSink extends TSource = ExtractAction<TSource, TKey>>(action: TSource) => action is TSink;