【发布时间】:2020-11-06 13:25:33
【问题描述】:
我遇到的问题似乎只是我的编译器的问题。它不喜欢它找不到我在数据部分中定义的属性。如果我将 'this' 替换为 '(this as any)' 它运行得很好。这让我相信我的打字稿有问题需要解决。该错误消息非常适合我的情况,但我不知道如何解决它。
编辑以添加 shims-vue.d.ts
declare module '*.vue' {
import Vue from 'vue';
export default Vue;
}
【问题讨论】:
-
看起来 TypeScript 不知道它应该如何处理 Vue 文件。错误中的
this指的是computed对象,而不是组件。你如何编译你的代码? -
我使用“vue-cli-service serve”来构建和托管代码。我认为它使用 webpack ......但我不确定。
-
你的项目中有
vue-shims.d.ts吗?此外,您的第 67 到 69 行看起来很时髦,因为您说(this as any).。一般来说,您根本不需要说任何话,因为this.非常好。使用any几乎违背了首先使用 TS 的核心目的 -
(this as any) 是我解决我所问问题的方法。它允许编译代码并在运行时正常工作。如果我将编译器抱怨的 this 替换为(this as any),它将编译并正常工作。我只是同意你的观点,它看起来很时髦,我不喜欢这样做。我很想解决这个问题并将它们全部删除。编辑了我的问题以包含我正在使用的 vue-shims.d.ts 文件。但不确定它的作用。
标签: vue.js