|
|
@ -15,12 +15,24 @@ export type Component<Data=DefaultData<never>, Methods=DefaultMethods<never>, Co |
|
|
|
interface EsModuleComponent { |
|
|
|
default: Component |
|
|
|
} |
|
|
|
|
|
|
|
export type AsyncComponent<Data=DefaultData<never>, Methods=DefaultMethods<never>, Computed=DefaultComputed, Props=DefaultProps> |
|
|
|
= AsyncComponentPromise<Data, Methods, Computed, Props> |
|
|
|
| AsyncComponentFactory<Data, Methods, Computed, Props> |
|
|
|
|
|
|
|
export type AsyncComponent<Data=DefaultData<never>, Methods=DefaultMethods<never>, Computed=DefaultComputed, Props=DefaultProps> = ( |
|
|
|
export type AsyncComponentPromise<Data=DefaultData<never>, Methods=DefaultMethods<never>, Computed=DefaultComputed, Props=DefaultProps> = ( |
|
|
|
resolve: (component: Component<Data, Methods, Computed, Props>) => void, |
|
|
|
reject: (reason?: any) => void |
|
|
|
) => Promise<Component | EsModuleComponent> | void; |
|
|
|
|
|
|
|
export type AsyncComponentFactory<Data=DefaultData<never>, Methods=DefaultMethods<never>, Computed=DefaultComputed, Props=DefaultProps> = () => { |
|
|
|
component: AsyncComponentPromise<Data, Methods, Computed, Props>; |
|
|
|
loading?: Component | EsModuleComponent; |
|
|
|
error?: Component | EsModuleComponent; |
|
|
|
delay?: number; |
|
|
|
timeout?: number; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* When the `Computed` type parameter on `ComponentOptions` is inferred, |
|
|
|
* it should have a property with the return type of every get-accessor. |
|
|
|