Как уже упоминалось в комментариях, поддержка BigInt
была добавлена в TypeScript с выпуском TypeScript 3.2 .
Если вы не можете выполнить обновление (что вызывает сожаление, поскольку TypeScript изменяется достаточно быстро, чтобы стать значительным источником технической задолженности), вы не можете использовать BigInt
напрямую.
One подход заключается в использовании сторонней целочисленной библиотеки произвольной точности. Это не может быть полностью прозрачной заменой; невозможно заполнить синтаксис. Таким образом, вы не сможете использовать литералы BigInt, такие как 123n
, или перегруженные числа c, такие как BigInt(3) * BigInt(5)
. Вместо этого вам нужно будет использовать методы или функции, которые дают такое поведение.
Я не думаю, что это место для защиты определенной библиотеки, поэтому я просто буду использовать тот, который я нашел первым при поиске : BigInteger. js, опубликовано в npm как big-integer
:
import bigInt from "big-integer";
Тогда приведенный выше код должен будет использовать метод and()
для побитового оператора вместо оператора &
:
private AND = (left: BitwiseNumber, right: BitwiseNumber) => {
return bigInt(left).and(bigInt(right));
};
Хорошо, надеюсь, это поможет; удачи!
Детская площадка ссылка на код