Spec-Zone.ru › JavaScript

TypeError: невозможно преобразовать BigInt в число

Исключение JavaScript "can't convert BigInt to number" (невозможно преобразовать BigInt в число) возникает, когда арифметическая операция включает смешанные значения BigInt и Number.

Сообщение

TypeError: Cannot convert a BigInt value to a number (V8-based)
TypeError: Cannot mix BigInt and other types, use explicit conversions (V8-based)
TypeError: BigInts have no unsigned right shift, use >> instead (V8-based)
TypeError: can't convert BigInt to number (Firefox)
TypeError: Conversion from 'BigInt' to 'number' is not allowed. (Safari)
TypeError: Invalid mix of BigInt and other type in addition/multiplication/…. (Safari)
TypeError: BigInt does not support >>> operator (Safari)

Тип ошибки

TypeError.

Что пошло не так?

Обе стороны арифметического оператора должны быть либо BigInts, либо не быть BigInts. Если операция включает смешанные BigInts и числа, неоднозначно, должен ли результат быть BigInt или числом, поскольку в обоих случаях возможна потеря точности.

Ошибка также возникает, когда BigInt неявно преобразуется в число посредством процесса приведения к числу. Например, если BigInt передается встроенному методу, который ожидает число.

Ошибка также может произойти, если оператор беззнакового правого сдвига (>>>) используется между двумя BigInts. В Firefox сообщение то же самое: "can't convert BigInt to number".

Примеры

Смешивание чисел и BigInts в операциях

const sum = 1n + 1;
// TypeError: can't convert BigInt to number

Вместо этого явно приведите одну сторону к BigInt или числу.

const sum = 1n + BigInt(1);
const sum2 = Number(1n) + 1;

Использование беззнакового правого сдвига с BigInts

const a = 4n >>> 2n;
// TypeError: can't convert BigInt to number

Используйте вместо этого обычный правый сдвиг.

const a = 4n >> 2n;

См. также

  • BigInt

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cant_convert_BigInt_to_number

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API