首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型记录找不到jszip类型。

类型记录找不到jszip类型。
EN

Stack Overflow用户
提问于 2019-06-17 16:23:04
回答 1查看 5.4K关注 0票数 3

我有一个奇怪的问题,在这个问题中,类型记录找不到jszip的类型。

  • 其他类型工作正常。
  • 类型似乎在正确的位置。

在我的源文件中,我使用这些导入

代码语言:javascript
复制
import * as fast_csv from 'fast-csv';
import { Response } from 'express';
import fs from 'fs';
import * as JSZip from 'jszip';

除了jszip之外,所有的功能都很好:

代码语言:javascript
复制
Error:(9, 24) TS7016: Could not find a declaration file for module 'jszip'. 'ROOT/node_modules/jszip/dist/jszip.min.js' implicitly has an 'any' type.

当我查看我的(唯一的) node_modules/@types dir时,所有文件都在那里:

以下是来自package.json的相关条目

代码语言:javascript
复制
  "dependencies": {
    "@hapi/joi": "^15.0.1",
    "fast-csv": "^2.5.0",
    "jszip": "^3.2.1"
  },
  "devDependencies": {
    "@types/express": "^4.16.0",
    "@types/hapi__joi": "^15.0.1",
    "@types/jszip": "^3.1.6",
   }

注:

  • 我认为打字本只使用名称:例如,当导入jszip时,应该搜索@types/jszip
    • 但是我似乎错了,因为@hapi/joi的类型被称为@types/hapi__joi,它们工作得很好。

  • 我认为版本错配也不应该成为一个问题:"jszip": "^3.2.1"还是"@types/jszip": "^3.1.6",对吗?
  • IDE中的代码完成还显示了以下类型:

知道吗,我错过了什么?

相关链接:

  • 类型记录文档:使用声明文件
  • @类型、typeRoots和类型
  • npm @type/jszip
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-17 17:00:37

更新04.2020

这个问题似乎在jszip 3.3.0中得到了解决:请参阅修正浏览器模块解析#614

此外,我认为这个问题只是与客户端(角度)构建有关。因为节点有自己的流包

原始

我发现了一个问题:在tsconfig.json中,我们有一个显式的路径定义:

代码语言:javascript
复制
"paths": {
  "jszip": ["node_modules/jszip/dist/jszip.min.js"],

删除此操作后,生成失败,原因如下:

代码语言:javascript
复制
ERROR in C:/devroot/node_modules/jszip/lib/readable-stream-browser.js
Module not found: Error: Can't resolve 'stream' in 'C:\devroot\node_modules\jszip\lib'

解决这个问题的方法是安装stream包(感谢这个问题-评论)。

代码语言:javascript
复制
npm i stream

或使用类型

代码语言:javascript
复制
typedi stream

现在这个建筑运作得很好。

注意:也许有更好的方法来解决这个问题--看看这个问题-评论

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56635317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档