Typescript 将方法绑定到插槽属性

Typescript 将方法绑定到插槽属性,typescript,vue.js,vue-class-components,Typescript,Vue.js,Vue Class Components,我正在使用VUE 2.6.11和类组件。我试图将可以显示为模态的组件包装在将管理模态状态的组件中 根据文档,我可以使用 由于某些原因,我的方法未绑定到模板: Modal.vue: @组件 导出默认类模式扩展Vue{ @道具(字符串)图标!:字符串 @道具({default:'打开弹出窗口'})工具提示!:字符串 isVisible=false toggleModal(){ console.log('toggleModal from Modal') this.isVisible=!this.isV

我正在使用VUE 2.6.11和类组件。我试图将可以显示为模态的组件包装在将管理模态状态的组件中

根据文档,我可以使用 由于某些原因,我的方法未绑定到模板:

Modal.vue:

@组件
导出默认类模式扩展Vue{
@道具(字符串)图标!:字符串
@道具({default:'打开弹出窗口'})工具提示!:字符串
isVisible=false
toggleModal(){
console.log('toggleModal from Modal')
this.isVisible=!this.isVisible
}
toggleModalFactory='简单属性'
}
模板:


然后在我的父母身上,我做了以下几件事:


开发工具声称我的方法是绑定的

但当我在嵌套的模态内容中执行prop函数时:

导出默认类TestComponent扩展Vue{
@Prop()toggleModal!:函数
@发射()
解雇{
this.toggleModal()
log('从TestComponent中退出')
}
@发射()
接受{
this.toggleModal()
log('accept from TestComponent')
返回“接近成功”
}
}
我发现以下错误:

[Vue warn]:属性或方法“toggleModal”未在实例上定义,但在渲染期间被引用。通过初始化属性,确保此属性在数据选项中或在基于类的组件中是被动的。

以及:

TypeError:this.toggleModal不是一个函数


我发现(这实际上指向了我在开始时提到的文档,但我看不出有什么区别会破坏我的代码)

一个开发人员失去生命的故事:

我的TestComponent缺少
@Component
注释


从“Vue属性装饰器”导入{Emit,Prop,Vue,Component}
@组成部分
导出默认类TestComponent扩展Vue{
@道具(功能)关闭!:功能
@发射()
解雇{
这个。关闭()
log('从TestComponent中退出')
}
@发射()
接受{
console.log('close',this.close,this)
这个。关闭()
log('accept from TestComponent')
返回“接近成功”
}
}