a334147350
a334147350
2021-01-04 17:53
采纳率: 100%
浏览 498

vue3.0+ts 在引用swiper/vue时报错

报错信息:Could not find a declaration file for module 'swiper/vue'

swiper版本:6.4.5

vue版本:3.0.0

<script lang='ts'>
  import { Swiper, SwiperSlide } from 'swiper/vue'
</script>

说明:引用方式参考官方文档https://swiperjs.com/vue/#installation

找寻解决方式,谢谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

11条回答 默认 最新

  • qq_39580731
    Seale酱 2021-01-26 16:11
    已采纳

    给你们一个解决方案

    在 ts 项目下的 src 目录创建一个 `swiper-t.d.ts` 文件

    /**
     * @作者: Seale
     * @时间: 2021/1/26
     * @版本: V1.0
     * @说明: 声明swiper
     * @网站: https://www.imsle.com
    */
    
    declare module 'swiper/vue' {
        import _Vue from 'vue'
        export class Swiper extends _Vue {}
        export class SwiperSlide extends _Vue {}
    }
    

    之后 重启项目即可

    点赞 评论
  • Lazy33
    Lazy33 2021-01-04 18:17

    你看看你本地的包是不是叫swiper 或者你的依赖包里面有没有啊  这个报错应该是找不到

    点赞 评论
  • Mr_WangGeGe
    超小少 2021-01-05 08:56
    点赞 评论
  • a334147350
    a334147350 2021-01-05 11:54

    忘了说了,swiper的包是正常的,在script标签里面不加lang='ts'显示正常

    点赞 评论
  • a334147350
    a334147350 2021-01-05 11:55

    那个缺少声明文件的我也试了,静态的不报错,但是编译报错,还是运行不了

    点赞 评论
  • Mr_WangGeGe
    超小少 2021-01-05 15:01

    我尝试了下,vue3的js版可以正常使用,但是ts版确实有问题,官方也并没有说支持ts版

    点赞 评论
  • a334147350
    a334147350 2021-01-05 16:36

    官方只是说支持vue.js 3,有可能不支持vue3.0+ts

    点赞 评论
  • a334147350
    a334147350 2021-01-05 16:38

    但是我也看了swiper里面的文件,有好多ts文件(但我不知道是什么文件,或不知道ts文件是啥意思)

    点赞 评论
  • xubailei134829
    xubailei134829 2021-01-21 20:36

    请问仁兄最后如何解决的?

    点赞 评论
  • a334147350
    a334147350 2021-01-30 17:24

    我也没解决,从ts换成了js,看Seale的解决方法应该差不多,我也没试,朋友们可以试试再说

    点赞 评论
  • qq_48096758
    ^ZL 2021-07-20 12:52

    可以参考下这个文章,我当时也是引入swiper,然后各种报错
    https://www.jianshu.com/p/51fa180e6fd6

    点赞 评论

相关推荐