vue3 中 defineEmits和defineProps 用typescript 怎么写
在Vue3中,可以使用TypeScript来定义defineEmits和defineProps。以下是示例代码:
import { defineComponent } from 'vue'
interface Props {
title: string
}
interface Emits {
click: (event: MouseEvent) => void
}
export default defineComponent({
props: {
title: {
type: String,
required: true,
},
},
emits: ['click'],
setup(props: Props, { emit }: { emit: (event: keyof Emits, ...args: any[]) => void }) {
function handleClick(event: MouseEvent) {
emit('click', event)
}
return {
handleClick,
}
},
})
在上面的示例代码中,我们首先定义了Props和Emits接口并导入了defineComponent。然后,在组件定义中,我们使用props选项来定义Props,使用emits选项来定义Emits,同时在setup函数中使用emit函数来触发事件。
需要注意的是,在emit函数中,我们使用了keyof Emits来指定事件类型,因为emit函数的第一个参数必须是事件名称,而我们在Emits中定义了事件名称和事件处理函数的类型。
原文地址: http://www.cveoy.top/t/topic/b960 著作权归作者所有。请勿转载和采集!