从已安装的属性“函数”调用方法时出错,类型不存在

问题描述

我收到此错误属性 'load' 在类型 '{ name: string; components: { IonHeader:”上不存在 当我尝试从mounted() 调用函数load 时。 消息显示在控制台中,但我收到此错误

<script lang="ts">
import {
  IonHeader,IonToolbar,IonTitle,IonContent,//IonIcon,//IonButtons,IonButton,alertController,} from "@ionic/vue";
import { logout,add } from "ionicons/icons";
import { mapActions,mapGetters } from "vuex";
import { useRouter } from "vue-router";
import "../style/Home.scss";
export default {
  name: "ListDatos",components: {
    IonHeader,},data() {
    return {
      msg: "",datos: [],};
  },setup() {
    const router = useRouter();
    return {
      add,mounted() {
    console.log("Test mounted");
    this.load();
  },methods: {

    load(){
      console.log("function load()");
    },};
</script>

解决方法

那是因为 TypeScript 正在尝试猜测类型,并且由于您正在执行:export default {...all your code...} 对于只是一个对象的 TS,您需要指出它不仅仅是一个对象,实际上它是一个 Vue组件,这里是从文档中提取的代码(检查 docs here

import Vue from 'vue'

const Component = Vue.extend({
  // type inference enabled
})

正如您在该代码中看到的,组件定义包含在 Vue.extend() 中,因此您可以拥有自己的代码:

export default Vue.extend({
   //...your component...
})