|
|
@@ -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.
|