无法在打字稿版本3.1.6中使用BigInt。错误TS2304:找不到名称'BigInt'

问题描述 投票:0回答:1

我想在打字稿中使用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文件已经在targetlib中具有这些值,如下所示:

    "target": "es2018",
    "lib": ["es2018"],

现在将target的值从es-2018更改为esnext。它开始引发其他错误。因此,我的问题仍然可以在版本BigInt中使用3.1.6吗?如果不是,那么此版本中BigInt是否有其他替代项?

我的打字稿版本为3.1.6

typescript biginteger bigint
1个回答
0
投票

如评论中所述,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()

好的,希望这会有所帮助;祝你好运!

&

© www.soinside.com 2019 - 2024. All rights reserved.