问题描述
我收到此错误“属性 '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...
})