Vue.js VueJS:编译器错误状态数据属性不存在';通过此属性访问时不存在
我遇到了一个问题,似乎只是我的编译器有问题。它不喜欢找不到我在数据部分定义的属性。如果我将“this”替换为“(this as any)”,它运行得很好。这使我相信,我有一个问题,我需要修复的打字脚本。该错误消息针对我的情况非常具体,但我不确定如何修复它 编辑以添加垫片-vue.d.tsVue.js VueJS:编译器错误状态数据属性不存在';通过此属性访问时不存在,vue.js,Vue.js,我遇到了一个问题,似乎只是我的编译器有问题。它不喜欢找不到我在数据部分定义的属性。如果我将“this”替换为“(this as any)”,它运行得很好。这使我相信,我有一个问题,我需要修复的打字脚本。该错误消息针对我的情况非常具体,但我不确定如何修复它 编辑以添加垫片-vue.d.ts declare module '*.vue' { import Vue from 'vue'; export default Vue; } 计算属性可能需要显式类型批注。而不是 items() {
declare module '*.vue' {
import Vue from 'vue';
export default Vue;
}
计算属性可能需要显式类型批注。而不是
items() {
...
}
你会的
items(): ItemType[] {
...
}
然后,Typescript应该理解
此
引用。它还值得考虑,根据我的经验,它更适合Vue 2中的typescript(这个问题不会发生)。最终解决这个问题的是我的声明性语句。
我的错误:
export default {
name: 'Home',
components: {
...
},
...
};
修复方法:
export default Vue.extend({
name: 'Home',
components: {
...
},
...
});
看起来TypeScript不知道应该如何处理Vue文件。错误中的
此
指的是计算的
对象,而不是组件。如何编译代码?我使用“vue cli服务”来构建和托管代码。我认为它使用网页包。。。但老实说,我不确定。您的项目中是否有vue.d.ts
?另外,您的第67行到第69行看起来很时髦,因为您说的是(这是任何一行)。
。通常你根本不需要说什么,因为这个。
非常好。使用any
基本上违背了使用TS的一个核心目的(正如任何情况一样),这是我为解决我要问的问题而做的工作。它允许编译代码,并且在运行时工作良好。如果我将compliler抱怨的this替换为this(与任何一样),它将编译并工作得很好。我只是同意你的看法,它看起来很时髦,我不喜欢这样做。我很想解决这个问题,并把它们全部删除。编辑了我的问题以包含我正在使用的vue-d.ts文件。但我不知道它能做什么。