perf: 为createAsyncComponent函数增加类型推导

pull/33/head
xingyu 2023-09-04 14:26:17 +08:00
parent c4425a8286
commit f1bc5e738a
1 changed files with 10 additions and 1 deletions

View File

@ -1,3 +1,8 @@
import type {
AsyncComponentLoader,
Component,
ComponentPublicInstance,
} from 'vue'
import {
defineAsyncComponent,
// FunctionalComponent, CSSProperties
@ -27,7 +32,11 @@ interface Options {
retry?: boolean
}
export function createAsyncComponent(loader: Fn, options: Options = {}) {
export function createAsyncComponent<
T extends Component = {
new (): ComponentPublicInstance
},
>(loader: AsyncComponentLoader<T>, options: Options = {}) {
const { size = 'small', delay = 100, timeout = 30000, loading = false, retry = true } = options
return defineAsyncComponent({
loader,