在Angular中使用bigint文字时,模块解析失败

时间:2019-05-03 19:13:22

标签: javascript angular typescript bigint

我正在做一个个人项目,尝试学习Angular框架。我目前是一个新手,但我设法(我认为)可以在打字稿中正确包含javascript bigint数字类型(通过在tsconfig.json文件中定位esnext版本),因为这样可以正常工作:< / p>

export class Particule {

  public name: String;
  public amount: bigint;
  public cost: bigint;

  constructor(name: String, amount: bigint, cost: bigint)
  {
      this.amount=amount;
      this.name=name;
      this.cost=cost;
  }

  public increment(): void {
      this.amount += BigInt(1); // <<< this line compiles, no problem
  }

  /* ... */

}

但是,如果我将increment()方法的内容替换为:this.amount += 1n;,则会出现以下错误:

ERROR in ./src/app/entities/particule.ts 8:24
Module parse failed: Identifier directly after number (8:24)
You may need an appropriate loader to handle this file type.
|     }
|     increment() {
>         this.amount += 1n;
|     }

这不是一个麻烦的“大”问题(请参阅我在那做的事情:D),因为一切都可以通过BigInt()调用进行,但是我想知道是否有一种方法可以在我的项目中使用直接的bigint文字!

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

这是因为BigInt尚未成为ECMAScript标准的一部分,它是stage 3 proposal

因此,目前restricted对Type esnext的支持。

如果您定位到esnext,则BigInt文字应该可以使用。如果不是,错误消息将是:

  

定位低于ESNext时,BigInt文字不可用。

也许正在使用typescript的旧版本?