Несмотря на то, что BigInt
находится на стадии 4 и может быть легко использовано в последних версиях браузера и узла, на момент написания вам все равно нужно будет установить TS target
config на минимум ES2020
или ESNext
:
{
"compilerOptions": {
"target": "ESNext"
...
}
}
Что касается самой проблемы hrtime.bigint()
, вам, возможно, придется либо добавить / обновить свою зависимость @types/node
объявлений объявлений типа и / или сам узел ...
В моем собственном проекте я также использовал этот код ниже для обеспечения обратной совместимости со старыми версиями Node (хотя и с очевидной нехваткой точности):
/**
* If available, returns wrapper for `process.hrtime.bigint()` else
* falls back to `Date.now()`. In all cases, returns a nanosec-scale
* timestamp, either as `bigint` or `number`.
*/
export const now =
typeof BigInt !== "undefined"
? typeof process !== "undefined" &&
typeof process.hrtime !== "undefined" &&
typeof process.hrtime.bigint === "function"
? () => process.hrtime.bigint()
: () => BigInt(Date.now() * 1e6)
: () => Date.now() * 1e6;