Vue3+Vite+TS解决调用组件实例有类型推断

2023-12-23 06:44:35

Vue3+Vite+TS解决调用组件实例有代码提示

子组件ChildComponent

<template>
	<div>我是子组件</div>
</template>

<script>
import { reactive } from "vue"

const form = reactive({
	name: ""
});

const getName = (): string => {
	return form.name;
}

defineExpose({
	form,
	getName
})
</script>

父组件

<template>
	<div>我是父组件</div>
	<child-component ref="childRef"/>
</template>

<script>
import { reactive, ref } from "vue"
import type ChildComponent from "@/component/ChildComponent.vue"

const childRef = ref<InstanceType<typeof ChildComponent>>()

onMounted(() => {
	// 此时编写childRef.value.的时候就有代码提示啦
	console.log(childRef.value?.form);
	console.log(childRef.value?.getName())
})
</script>

重点在于使用TS内置的类型 InstanceType 用于获取构造函数的实例类型

InstanceType<typeof ChildComponent>

文章来源:https://blog.csdn.net/qq_34451215/article/details/135125634
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。