gpt4 book ai didi

typescript 找不到 jszip 类型

转载 作者:行者123 更新时间:2023-12-05 06:25:53 27 4
gpt4 key购买 nike

我有一个奇怪的问题,typescript 找不到 jszip 的类型。

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

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

import * as fast_csv from 'fast-csv';
import { Response } from 'express';
import fs from 'fs';
import * as JSZip from 'jszip';

一切正常,除了 jszip: es

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 目录时,所有文件都在那里: enter image description here

这是来自 package.json

的相关条目
  "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",
}

注意事项:

  • 我认为 typescript 只使用名称:例如导入 jszip 时,它应该搜索 @types/jszip
    • 但似乎我错了,因为 @hapi/joi 的类型被称为 @types/hapi__joi 并且它们工作正常
  • 我认为版本不匹配也不是问题:"jszip": "^3.2.1""@types/jszip": "^3.1.6",对吧?
  • IDE 中的代码完成还显示了类型: enter image description here

知道我错过了什么吗?

相关链接:

最佳答案

2020 年 4 月更新

问题似乎已在 jszip 3.3.0 中修复:参见 Fix browser module resolution #614

此外,我认为该问题仅与客户端(角度)构建有关。由于节点有自己的 stream package

原创

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

"paths": {
"jszip": ["node_modules/jszip/dist/jszip.min.js"],

删除后,构建失败:

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 包(感谢这个 issue-comment )

npm i stream

或使用 typedi 时:

typedi stream

现在构建工作正常。

注意:也许有更好的方法来解决这个问题 - 请参阅 issue-comment

关于typescript 找不到 jszip 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56635317/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com