Typescript 什么';s Vue 3合成API';s类型定义方法的安全方式

Typescript 什么';s Vue 3合成API';s类型定义方法的安全方式,typescript,vuejs3,vue-composition-api,Typescript,Vuejs3,Vue Composition Api,我正在使用Vue的合成API(在Vue.js3中),并主要在setup()中构建我的组件逻辑。虽然viasetup(props)是直截了当的,但我无法以类型安全的方式公开这里定义的函数 下面的工作正常,但我需要any cast,因为没有方法接口暴露于TypeScript // ... 导出默认定义组件({ 设置(){ // ... 返回{ publicFunction:async():Promise=>{/*…*/}; } } }); 导出默认定义组件({ 异步设置(){ 常数my=ref

我正在使用Vue的合成API(在Vue.js3中),并主要在
setup()
中构建我的组件逻辑。虽然via
setup(props)
是直截了当的,但我无法以类型安全的方式公开这里定义的函数

下面的工作正常,但我需要any cast,因为没有方法接口暴露于TypeScript


// ...
导出默认定义组件({
设置(){
// ...
返回{
publicFunction:async():Promise=>{/*…*/};
}
}
});

导出默认定义组件({
异步设置(){
常数my=ref();
异步函数(){
等待(my.value as any).publicFunction();//您正在寻找的


这正是我想要的,谢谢!不幸的是,官方Vue.js文档中没有提到这一点。
import MyComponent from 'path/to/the/component';

export default defineComponent({
  async setup() {
    const my = ref<InstanceType<typeof MyComponent>>();

    async func() {
      await my.value?.publicFunction();
    }

    return { my, func };
  }
});
const my = ref({} as InstanceType<typeof MyComponent>);

async func() {
  await my.value.publicFunction();
}