0

我正在尝试使用打字稿在 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>

4

0 回答 0