Я не могу найти подходящий тип для своих компонентов, которые я импортировал в свой файл.
Вот пример кода:
Используемые компоненты
// Component1.ts
export default defineComponent({
name: 'Component1',
// other component properties...
})
// Component2.ts
export default defineComponent({
name: 'Component2',
// other component properties...
})
Файл MyComponents.ts
// ExternalComponents.ts
import Component1 from './Component1';
import Component2 from './Component2';
type componentArrayType = {
name: String;
component?: ReturnType<typeof defineAsyncComponent>; // This is what I'm currently using
}
export const components = [
{
name: Comp1,
Component1
},
{
name: Comp2,
Component2
}
];
Я пытался использовать тот же тип, что и в vue 2, но vuex больше не совместим с vue 3.
import { AsyncComponentPromise } from 'vue/types/options'
type componentArrayType = {
name: String;
component?: AsyncComponentPromise;
}
import type { Component } from 'vue' все в порядке
@AlexanderNenachev Можете ли вы объяснить, почему мне не следует использовать defineAsyncComponent? Предупреждения побудили меня использовать его.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Тип экспорта Component Vue представляет собой компонент Vue.
import type { Component } from 'vue'
ты нигде не используешь
defineAsyncComponent