Spec-Zone.ru › JavaScript

TypeError: Невозможно преобразовать x в BigInt

JavaScript-исключение "x cannot be converted to BigInt" возникает при попытке преобразовать значение Symbol, null или undefined в BigInt, или если операция, ожидающая параметр BigInt, получает число.

Сообщение

TypeError: Cannot convert null to a BigInt (V8-based)
TypeError: can't convert null to BigInt (Firefox)
TypeError: Invalid argument type in ToBigInt operation (Safari)

Тип ошибки

TypeError.

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

При использовании функции BigInt() для преобразования значения в BigInt, значение сначала преобразуется в примитив. Затем, если это не BigInt, строка, число или булево значение, выбрасывается ошибка.

Некоторые операции, такие как BigInt.asIntN, требуют, чтобы параметр был BigInt. Передача числа в этом случае также вызовет эту ошибку.

Примеры

Использование BigInt() с недопустимыми значениями

const a = BigInt(null);
// TypeError: can't convert null to BigInt
const b = BigInt(undefined);
// TypeError: can't convert undefined to BigInt
const c = BigInt(Symbol("1"));
// TypeError: can't convert Symbol("1") to BigInt
const a = BigInt(1);
const b = BigInt(true);
const c = BigInt("1");
const d = BigInt(Symbol("1").description);

Примечание: Простое приведение значения к строке или числу с помощью String() или Number() перед передачей в BigInt() обычно недостаточно, чтобы избежать всех ошибок. Если строка не является допустимой строкой целого числа, выбрасывается SyntaxError; если число не является целым (в частности, NaN), выбрасывается RangeError. Если диапазон входных данных неизвестен, правильно проверьте его перед использованием BigInt().

Передача числа в функцию, ожидающую BigInt

const a = BigInt.asIntN(4, 8);
// TypeError: can't convert 8 to BigInt
const b = new BigInt64Array(3).fill(3);
// TypeError: can't convert 3 to BigInt
const a = BigInt.asIntN(4, 8n);
const b = new BigInt64Array(3).fill(3n);

См. также

  • Конструктор 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_x_to_BigInt

Spec-Zone.ru

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