Typescript 什么';s Vue 3合成API';s类型定义方法的安全方式
我正在使用Vue的合成API(在Vue.js3中),并主要在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
setup()
中构建我的组件逻辑。虽然viasetup(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();
}