【发布时间】:2021-06-24 14:45:24
【问题描述】:
我有两个全局注册的组件 ParentComponent 和 ChildComponent。全局注册的优点之一是全局注册的组件在应用程序中随处可用。换句话说,我不必在其他组件中导入它们来使用它们。不幸的是,不能对类型说同样的话。要从组件访问类型,无论组件是否已全局注册,我都需要导入它(查看下面的 ParentComponent 代码)。有没有办法将类型从组件导出到“全局”范围并使其在应用程序的任何位置可用?
main.ts
import { createApp} from 'vue'
import App from './App.vue'
import ParentComponent from './ParentComponent.vue'
import ChildComponent from './ChildComponent.vue'
const app = createApp(App)
app.component('parent-component', ParentComponent)
app.component('child-component', ChildComponent)
app.mount('#app')
子组件(摘录)
export type ChildComponentEvent = {
message: string
}
export default defineComponent({
methods: {
emitEvent () {
const event: ChildComponentEvent = {
message: 'Hello from child'
}
this.$emit('child-event', event)
}
}
})
父组件(摘录)
import { ChildComponentEvent } from './ChildComponent'
export default defineComponent({
methods: {
childEventHandler (event: ChildComponentEvent) {
console.log(event)
}
}
})
【问题讨论】:
标签: typescript vuejs3