By_Engine
@By_Engine

Как указать тип для глобальных ленивых компонентов?

При использовании глобально зарегистрированных компонентов они имеют тип "any". У локально импортированных компонентов тип определяется

Регистрация
const vue = createApp(App)
vue.component('MyGlobalComponent', defineAsyncComponent(() => import('./Test.vue')))
vue.mount('#app')


Если указать generic для defineAsyncComponent - тоже не работает

64380f2572c26483273484.png
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
By_Engine
@By_Engine Автор вопроса
Решение:
Создать файл *.d.ts в котором указать глобальные компоненты

import '@vue/runtime-core'

declare module '@vue/runtime-core' {
  export interface GlobalComponents {
    MyGlobalComponent: typeof import('./Test.vue')['default']
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы