我正在尝试使用打字稿在 Vue.js 中编写应用程序。
使用 vue create 引导的应用程序。
我正在使用 VS 代码
Version: 1.57.1 (user setup)
Commit: 507ce72a4466fbb27b715c3722558bb15afa9f48
Date: 2021-06-17T13:28:07.755Z
Electron: 12.0.7
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: 8.9.255.25-electron.0
OS: Windows_NT x64 10.0.19042
我在控制台中有消息:
编译成功
没有发现问题。
Everytging 工作正常但
我的 Vetur 扩展(v0.34.1)向我大喊这个错误
{
"resource": "/C:/...appfolder/src/components/UsersList.vue",
"owner": "_generated_diagnostic_collection_name_#1",
"code": "2304",
"severity": 8,
"message": "Cannot find name 'User'.",
"source": "Vetur",
"startLineNumber": 1,
"startColumn": 1,
"endLineNumber": 1,
"endColumn": 1
}
重新加载 Vetur 没有帮助
当我将 Vetur 降级到 v0.20.x 时错误消失
是否有任何解决方案可以使用 vetur v 至少 0.3xx 而不会出现这个恼人的错误?或者以某种方式关闭它?
我的版本:
"core-js": "^3.6.5",
"vue": "^3.0.0"
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-typescript": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/compiler-sfc": "^3.0.0",
"typescript": "~4.1.5"
我的组件:
<template>
<p v-if="loading">Loading...</p>
<div v-if="users.length">
<UserListElement v-for="user in users" :key="user.id" :user="user" />
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from "vue";
import UserListElement from "@/components/UserListElement.vue";
import { fetchUsers } from "@/api";
import { User } from "@/types";
export default defineComponent({
setup() {
const users = ref([] as User[]);
const loading = ref(true);
const error = ref("");
return { users, loading, error };
},
props: {...props},
components: {
UserListElement,
},
methods: {
async getUsers() {
try {
const users = await fetchUsers(this.endpoint);
this.users = users;
this.loading = false;
} catch (error) {
this.error = error.message;
this.loading = false;
}
},
},
created() {
this.getUsers();
},
});
</script>