【问题标题】:Angular with @types/swiper带有@types/swiper的角度
【发布时间】:2019-03-11 09:41:45
【问题描述】:

我在 Angular 6 项目中使用 @types/swiper,但在尝试创建 Swiper 的新实例时出现错误(不能将“new”与类型缺少调用或构造签名的表达式一起使用)。

StackBlitz

【问题讨论】:

  • 我试图在本地重现该错误,在尝试这样做时,我首先使用“npm i --save swiper”安装了 Swiper,然后使用“npm install --save @types/”安装了 Swiper 类型swiper',不知何故,它卸载了 Swiper。我也尝试了 tsconfig 和 typings.d.ts 修改,但没有任何效果。然后我意识到我的 node_modules 中缺少 Swiper。再次安装 Swiper,错误消失了:)。请再检查一次你的 node_modules。
  • 当我输入与 Swiper 无关的变量时出现问题,请查看 StackBlitz。顺便说一句,从 npm 5 开始,模块默认添加为依赖项,因此 --save 选项是多余的 (;

标签: angular typescript types swiper


【解决方案1】:

@types/swiperswiper 模块的声明是错误的:声明说该模块有一个 SwiperSwiper 类的命名导出,但它实际上具有该类的默认导出(或导出分配取决于您的捆绑器是使用 CommonJS 还是 ES6 版本:啊,愚蠢的包装)。我已提交 a pull request to DefinitelyTyped 以尝试修复声明。如果您使用我修改后的声明(请参阅this answer 了解可能的方法),您的代码应该可以成功编译。

【讨论】:

  • 当我写这个类型定义的时候,我没想到有人可能会想要使用非 esm 版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多