在TypeScript中使用BigInt

时间:2019-12-23 13:43:54

标签: typescript

我相信我现在应该可以在TypeScript中使用BigInt ...但是更改一些代码库以使用它,并且我对为什么会收到此错误的任何想法都为“找不到名称'BigInt'(2304)”。 ?

$ cat test.ts 
let x = BigInt(123)
console.log(x.toString())

$ tsc test.ts 
test.ts:1:9 - error TS2304: Cannot find name 'BigInt'.

1 let x = BigInt(123)
          ~~~~~~


Found 1 error.

现在如何在TypeScript中开始使用BigInt?

3 个答案:

答案 0 :(得分:1)

就我而言,我应该在 tsconfig.json 中的类型中添加“节点”

{
  "compilerOptions": {
    "target": "esnext",
    "outDir": "build/module",
    "module": "esnext",
    "types": ["node"]
  },
  "exclude": [
    "node_modules/**"
  ]
}

答案 1 :(得分:0)

BigInt已在TypeScript 3.2上添加了支持;确保您的版本兼容。

但是最重要的是,您需要决定如何在脚本的上下文中支持BigInt-您将提供polyfills,还是仅在保证具有{{ 1}}支持吗?

这意味着you will need esnext作为构建目标(可能在BigInt的{​​{1}}字段上),因为tsconfig.json与以前的ECMAScript版本不兼容。

如果您确实包含target填充,则在转译期间可以将BigInt用作BigInt字段的一部分。这会将所需的定义添加到流程中。

答案 2 :(得分:0)

我可以在 lib 中添加 esnext.bigint

{
  "compilerOptions": {
    "lib": ["es6","esnext.bigint"]
  }
}