类静态端“typeof _Readable”错误地扩展了基类静态端“typeof Readable”
Posted
技术标签:
【中文标题】类静态端“typeof _Readable”错误地扩展了基类静态端“typeof Readable”【英文标题】:Class static side 'typeof _Readable' incorrectly extends base class static side 'typeof Readable' 【发布时间】:2020-09-08 20:23:32 【问题描述】:我正在使用 node/typescript 为 Discord 开发一个机器人。当我在我的源代码上运行 typescript 编译器时,我收到了这个错误:
node_modules/@types/readable-stream/index.d.ts(13,15): error TS2417: Class static side 'typeof _Readable' incorrectly extends base class static side 'typeof Readable'.
The types of 'Stream.Readable.Writable' are incompatible between these types.
Type 'typeof _Readable.Writable' is not assignable to type 'typeof import("stream").Writable'.
Types of parameters 'options' and 'opts' are incompatible.
Type 'import("stream").WritableOptions' is not assignable to type '_Readable.WritableOptions'.
Type 'WritableOptions' is not assignable to type 'WritableStateOptions'.
Types of property 'defaultEncoding' are incompatible.
Type 'string' is not assignable to type 'BufferEncoding'.
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! Shattered-Star@1.0.0 tsc: `tsc`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the Shattered-Star@1.0.0 tsc script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
我尝试重新安装@types/node
,因为这似乎是它来自的模块,但这并没有引起任何变化。据我所知,我的源代码都没有使用readable-streams
子模块。事实上,删除它解决了我的问题——我只想知道到底发生了什么。这是我的tsconfig.json
,以防我在那里遗漏了什么:
"compilerOptions":
"target": "es6",
"outDir": "built/",
"moduleResolution": "Node"
,
"include": [
"./bot/**/*"
]
我将不胜感激这方面的任何帮助。希望我不是唯一遇到这种情况的人。谢谢!
【问题讨论】:
我只是忘了'yarn',所以我把这个评论留给像我这样的其他白痴 【参考方案1】:在节点版本 v12.18.1
上更新到 @types/readable-stream@2.3.7
为我解决了这个问题。
【讨论】:
【参考方案2】:我最近遇到了这个问题。
这似乎是@types/readable-stream
(2.3.6) 的最新版本与您的node
版本之间的打字不兼容。
您可以在 yarn.lock / package-lock.json 中检查此版本中是否存在此包
似乎@types/readable-stream@2.3.6
与node >= 14
兼容,而@types/readable-stream@2.3.5
似乎与node < 14
-兼容
我如何在我的环境中修复它node < 14
:
yarn add -D --exact @types/readable-stream@2.3.5
或者使用 npm:
npm i -D -E @types/readable-stream@2.3.5
这会覆盖 @types/readable-stream
软件包版本,并通过在 package.json devDependencies 中添加 "@types/readable-stream": "2.3.5"
来明确设置为 2.3.5
固定版本
我猜(但我没有测试过)我遇到了同样的问题,而您的 node
版本是 >= 14
,您可能必须对 2.3.6
版本执行相同的操作987654337@
来源:https://github.com/DefinitelyTyped/DefinitelyTyped/issues/44828
【讨论】:
感谢您的回复。奇怪的是,相反的做法似乎解决了问题。我正在运行node v14.2.0
和 @types/readable-stream@2.3.5
没有问题。我想知道node v14
和node v14.2
之间的任何更改是否会导致与readable-streams
的兼容性更改...
适用于节点 v12.13.1
似乎特定节点版本和可读流定义之间存在关系。我有节点 v12.16.1 和 @types/readable-stream@2.3.5
以及 @types/readable-stream@2.3.7
用于锁定文件中的另一个依赖项。我尝试了两个都没有成功,然后去了 @latest,结果是@types/readable-stream@2.3.9
,这解决了它。以上是关于类静态端“typeof _Readable”错误地扩展了基类静态端“typeof Readable”的主要内容,如果未能解决你的问题,请参考以下文章
静态数组仅在类定义内溢出堆栈(段错误 11),否则不会......?