类型上不存在属性 - vue 和 typescript

Jac*_*ack 0 typescript vue.js nuxt.js

我正在尝试将js代码转换为ts。我的尝试如下。

<script lang="ts">
 export default {
  data() {
    return {
      isShow: false as boolean
    }
  },
  methods: {
    openCalendar() : void {
      this.isShow = true;
    },
  }
}
</script>
Run Code Online (Sandbox Code Playgroud)

但是当我运行该应用程序时,它会在控制台中抛出一个错误,指出isShowType 上不存在Property {open(): void;}。我哪里出错了,该如何解决?

Bou*_*him 5

要获得类型推断,请尝试用以下内容包装您的选项Vue.extend({})

<script lang="ts">
import Vue from 'vue'  
export default Vue.extend({
data() {
    return {
      isShow: false as boolean
    }
  }
  methods: {
    openCalendar() : void {
      this.isShow = true;
    },
 },
})
</script>
Run Code Online (Sandbox Code Playgroud)