VueJS/Typescript错误:找不到模块“my-module”或其对应的类型声明

bjp0bcyl  于 2023-10-23  发布在  Vue.js
关注(0)|答案(1)|浏览(196)

我用Nuxt和Typescript安装了Vue 2。我尝试使用yarn安装vue-slick-carousel模块,但Typescript显示错误:无法找到模块'vue-slick-carousel'或其对应的类型声明。打字新手在这里!当我尝试在我的组件中导入模块时,会发生此问题:

<script lang="ts">
  import Vue from 'vue'
  import { VueSlickCarousel } from 'vue-slick-carousel'
 
  export default Vue.extend({
     components: {
       VueSlickCarousel
     }
     ...
  })
</script>

tslog.json文件的内容:

{

"compilerOptions": {
    "target": "ES2018",
    "module": "ESNext",
    "moduleResolution": "Node",
    "lib": [
      "ESNext",
      "ESNext.AsyncIterable",
      "DOM"
    ],
    "esModuleInterop": true,
    "allowJs": true,
    "sourceMap": true,
    "strict": true,
    "noEmit": true,
    "experimentalDecorators": true,
    "baseUrl": ".",
    "paths": {
      "~/*": [
        "./*"
      ],
      "@/*": [
        "./*"
      ]
    },
    "types": [
      "@types/node",
      "@nuxt/types",
      "nuxt-i18n"
    ]
  },
  "exclude": [
    "node_modules",
    ".nuxt",
    "dist"
  ]
}

我的vue-shim.d.ts文件,不知道该在那里添加什么:

import Vue from 'vue'
declare module 'vue/types/vue' {
  interface Vue {
    $i18n: {
      locale:string,
      locales:{code:string, name:string, file:string}[]
    }
  }
}

我知道这个问题来自于Typescript无法找到模块类型。我发现了一个名为“@types/slick-carousel”的库,它安装了这些类型,但我不确定下一步该怎么做。我需要手动定义类型吗?

njthzxwz

njthzxwz1#

包@types/slick-carousel很遗憾不是这个包的正确类型。你可以通过浏览它的index. d. ts来查看它。
您可以在有问题的行上方添加// @ts-ignore。不建议这样做。
或者,您可以使用以下命令将shims-slick-carousele.d.ts添加到src文件夹中:

declare module 'vue-slick-carousel' {
  import Vue from "vue";

  declare class Slick extends Vue {
      next(): void;
      prev(): void;
      play(): void;
      pause(): void;
      reSlick(): void;
      goTo(index: number): void;
  }

  export default Slick;
}

(Type source)。

相关问题