我正在做一个个人项目,尝试学习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文字!
感谢您的回答。
答案 0 :(得分:1)
这是因为BigInt尚未成为ECMAScript标准的一部分,它是stage 3 proposal。
因此,目前restricted对Type esnext
的支持。
如果您定位到esnext
,则BigInt文字应该可以使用。如果不是,错误消息将是:
定位低于ESNext时,BigInt文字不可用。
也许正在使用typescript
的旧版本?