diff --git a/types/mobx-task/index.d.ts b/types/mobx-task/index.d.ts index d44e515a0e..0a160a4b70 100644 --- a/types/mobx-task/index.d.ts +++ b/types/mobx-task/index.d.ts @@ -24,7 +24,7 @@ export interface TaskMatchProps TaskMatchResult; } -export interface TaskStatusAware extends TaskFunc, Args> { +export interface TaskStatusAware extends TaskFunc, Args> { readonly state: TaskState; readonly pending: boolean; readonly resolved: boolean; @@ -42,21 +42,15 @@ export interface TaskStatusAware extends TaskFunc( - func: TaskFunc, - options?: TaskOptions>, - ): TaskStatusAware, A>; - - resolved( - func: TaskFunc, - options?: Omit>, 'state'>, - ): TaskStatusAware, A>; - - rejected( - func: TaskFunc, - options?: Omit>, 'state'>, - ): TaskStatusAware, A>; +export interface TaskCreator> extends MethodDecorator, PropertyDecorator { + (func: TaskFunc, options?: Pick>, K>): TaskStatusAware, A>; + (options: Pick>, K>): PropertyDecorator | MethodDecorator; } +export interface TaskFactory extends TaskCreator> { + resolved: TaskCreator, 'state'>>; + rejected: TaskCreator, 'state'>>; +} + +export type Task = TaskStatusAware; export const task: TaskFactory;