diff --git a/src/utils/factory/createAsyncComponent.tsx b/src/utils/factory/createAsyncComponent.tsx index fc5e2a60..712e56cb 100644 --- a/src/utils/factory/createAsyncComponent.tsx +++ b/src/utils/factory/createAsyncComponent.tsx @@ -1,4 +1,7 @@ import { + AsyncComponentLoader, + Component, + ComponentPublicInstance, defineAsyncComponent, // FunctionalComponent, CSSProperties } from 'vue'; @@ -27,7 +30,11 @@ interface Options { retry?: boolean; } -export function createAsyncComponent(loader: Fn, options: Options = {}) { +export function createAsyncComponent< + T extends Component = { + new (): ComponentPublicInstance; + }, +>(loader: AsyncComponentLoader, options: Options = {}) { const { size = 'small', delay = 100, timeout = 30000, loading = false, retry = true } = options; return defineAsyncComponent({ loader,