Vue 和 vue-属性-装饰器。 beforeRouteUpdate 挂钩中的 TS 错误

Vue and vue-property-decorator. TS error in beforeRouteUpdate hook

我正在使用 Vue 2/typescript 和 vue-属性-decorator 编写应用程序。在我的组件中,我使用 beforeRouteEnter/beforeRouteUpdate 钩子。我的组件有方法 findProjects,我想在我的 beforeRouteUpdate 挂钩中调用这个方法。

我的组件:

import { Component, Vue, Mixins, Watch } from 'vue-property-decorator'
...
export default class ProjectSandboxTs extends Mixins(GlobalFilterMixin({})) {
  created() {...
  }

  clearInput() {...
  }

  findProjects() {
    const filter: IFilter = { ...this.modalFilterValues, ...this.filterValues }
    this.filterProjects(filter)
    this.displayProjects()
    this.isEmpty = this.filteredData.length === 0
  }

  filterProjects(filter: IFilter) {...
  }

但是当我尝试在我的钩子中调用组件的方法时,我得到了打字稿错误: 属性 'findProjects' 在类型 'Vue'

上不存在
beforeRouteUpdate(to, from, next) {
  if (!isEqual(to.query, from.query)) {
    this.findProjects() // <== Property 'findProjects' does not exist on type 'Vue'
  }
  next()
}

有什么解决办法吗?

这是因为打字稿不知道 this 实例的类型。尝试这样的事情:

(this as ProjectSandboxTs).findProjects()