From dfaf9e24361e10ae68ce3951eaf48262cf90f0ec Mon Sep 17 00:00:00 2001 From: Timur Kiyui Date: Wed, 5 Dec 2018 23:00:56 +0000 Subject: [PATCH] fix(types): type support for advanced async components (#8438) --- types/options.d.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/types/options.d.ts b/types/options.d.ts index f6d92b97a16..a65f088b8c6 100644 --- a/types/options.d.ts +++ b/types/options.d.ts @@ -15,12 +15,24 @@ export type Component, Methods=DefaultMethods, Co interface EsModuleComponent { default: Component } + +export type AsyncComponent, Methods=DefaultMethods, Computed=DefaultComputed, Props=DefaultProps> + = AsyncComponentPromise + | AsyncComponentFactory -export type AsyncComponent, Methods=DefaultMethods, Computed=DefaultComputed, Props=DefaultProps> = ( +export type AsyncComponentPromise, Methods=DefaultMethods, Computed=DefaultComputed, Props=DefaultProps> = ( resolve: (component: Component) => void, reject: (reason?: any) => void ) => Promise | void; +export type AsyncComponentFactory, Methods=DefaultMethods, Computed=DefaultComputed, Props=DefaultProps> = () => { + component: AsyncComponentPromise; + 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.