Browse Source

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

main
xingyu 2 years ago
parent
commit
f1bc5e738a
  1. 11
      src/utils/factory/createAsyncComponent.tsx

11
src/utils/factory/createAsyncComponent.tsx

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