我想在打字稿中使用BigInt
private AND = (left: BitwiseNumber, right: BitwiseNumber) => {
return BigInt(left) & BigInt(right);
}
但是它给了我这个错误:
src / dir / file-name.ts(190,10):错误TS2304:找不到名称'BigInt'。
为了解决对this问题的检查的答案,该问题引用了this文件并建议我在文件"target": "esnext"
中添加"lib": ["esnext.bigint"]
和tsconfig.json
。
但是我的tsconfig.json
文件已经在target
和lib
中具有这些值,如下所示:
"target": "es2018",
"lib": ["es2018"],
现在将target
的值从es-2018
更改为esnext
。它开始引发其他错误。因此,我的问题仍然可以在版本BigInt
中使用3.1.6
吗?如果不是,那么此版本中BigInt
是否有其他替代项?
我的打字稿版本为3.1.6
如评论中所述,BigInt
支持已添加到TypeScript BigInt
。
如果无法升级(不幸的是,由于TypeScript的变化足够快,这使其成为技术债务的重要来源,那么您就不能直接使用with the release of TypeScript 3.2。
这里的一种方法是改用第三方的任意精度整数库。这不是完全透明的替代; polyfill语法是不可能的。因此,您将无法使用BigInt
之类的BigInt文字或123n
之类的重载数字运算符。相反,您将需要使用具有这种行为的方法或函数。
我不认为这里是倡导特定库的地方,所以我将只使用在搜索时首先找到的库:BigInt(3) * BigInt(5)
,在npm中以BigInteger.js的形式发布:
big-integer
然后您上面的代码将需要使用import bigInt from "big-integer";
进行按位运算符-而不是and()
method运算符:
and()
好的,希望这会有所帮助;祝你好运!
&