我无法在 Vue3.js 项目的 main.ts(TypeScript) 中导入某些库

I can't import some Libraries in main.ts(TypeScript) in Vue3.js project

我需要在我的项目中使用国旗,所以我决定使用 vue-country-flag-next

所以我安装了它,当我想将它导入我的 main.ts 时,发生了这种情况:



所以我将鼠标悬停在它上面以查看错误,error 是: Cannot find module 'vue-country-flag-next' or its corresponding type declarations. ts(2307)
我在我的项目中导入了很多库,它们都很好,这是我第一次遇到这个错误,所以我决定使用其他 country flag 个库,但错误又发生了,所以我想一定是文件类型 (ts) 有误并对此进行了搜索,但在这种情况下没有找到任何可以帮助我的东西。

到目前为止我已经尝试过:

  1. 检查了 .json 文件和 node_modules 中的所有依赖项,一切正常。
  2. 尝试通过在导入行末尾添加.vue文件来修复它(网上有人说添加.vue可以修复它,但没有)

出现这个错误是因为库没有提供类型声明文件。为了摆脱这个错误,你必须为它创建一个类型声明文件。 在这里关注问题,https://github.com/P3trur0/vue-country-flag/issues/72

或者您可以通过在导入行之前注释 // @ts-ignore 来忽略它,无论如何组件都应该工作。

// @ts-ignore
import CountryFlag from 'vue-country-flag-next

嗯,这通常是因为您缺少库的类型声明文件 (.d.ts)。您可以创建一个文件,也可以通过 npm 安装它们。

  1. 在项目的根目录中手动创建 decs.d.ts 文件
declare module "vue-country-flag-next" 
  1. 通过 npm 安装它们

    $ npm install @types/libName

  2. 抑制警告

// @ts-ignore
import CountryFlag from 'vue-country-flag-next'

P.S: 我不认为这个库已经有可用的类型声明。你必须检查一下。您可以尝试安装 this 库,因为它已经具有内置类型声明。