Ошибка синтаксического анализа модуля при использовании литерала bigint в Angular

Я работаю над личным проектом, чтобы попытаться изучить структуру Angular. В настоящее время я новичок в этом, но мне удалось (я думаю) правильно включить числовой тип javascript bigint в машинописный текст (нацелившись на версию esnext в файле tsconfig.json), так как это работает нормально:

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 в моем проекте!

Спасибо за ответы.


person Olivier L. Applin    schedule 03.05.2019    source источник
comment
Babel/TypeScript должен обновить свой компилятор, чтобы учесть эту информацию. Сообщите об этом как об ошибке команде Angular, Теби может справиться с этим...   -  person Akxe    schedule 03.05.2019
comment
На самом деле, какую версию typescript ты используешь, @Olivier?   -  person ᆼᆺᆼ    schedule 04.05.2019


Ответы (1)


Это связано с тем, что BigInt еще не является частью стандарта ECMAScript, это этап 3.

Следовательно, поддержка TypeScript в настоящее время ограничена таргетингом на esnext.

Если вы ориентируетесь на esnext, литералы BigInt должны работать. Если это не так, сообщение об ошибке будет таким:

Литералы BigInt недоступны при таргетинге ниже ESNext.

Возможно, используется старая версия typescript?

person ᆼᆺᆼ    schedule 03.05.2019
comment
tsc -v --> Version 3.4.5 ! Что странно, так это то, что вызов BigInt() работает нормально, а литералы — нет! - person Olivier L. Applin; 05.05.2019