TS2322:类型"BN"不可分配给类型"字符串 |号码 |BN' 在 Docker build 中



我有一个在本地机器上成功编译的typescript项目,并且我已经通过存储库上的管道成功地在本地构建了Docker映像。但是当一个同事试图在他的机器上构建它时,这个深奥的错误会在许多文件中出现,并阻止构建:

error TS2322: Type 'BN' is not assignable to type 'string | number | BN'

BN指的是BN .js库。

我知道这篇文章可能没有足够的信息让任何人明确地解决这个问题,但我正在寻找的是关于这里可能出错的地方的想法。

你见过一个类型的实例不能赋值给显式包含它的类型吗?如果是这样,潜在的问题是什么?

问题的根源原来是NPM,它是项目的包管理器。

这个项目本身是一个有两个包的单一项目,这两个包都依赖于BN.js,其中一个包从另一个包导入了一些类。然而,每个包都有自己版本的bnn .js,当不同版本的bnn .js开始混合在一个包中时,奇怪的事情就开始发生了。

在没有太多细节的情况下,解决方案是从两个包中删除BN.js,并在项目根级别安装特定版本。

最新更新