# Improve inter-operability between BigInt and regular Numbers

**URL:** <https://es.discourse.group/t/improve-inter-operability-between-bigint-and-regular-numbers/2419>\
**Category:** 💡 Ideas\
**Created:** [August 21, 2025, 4:51am UTC](https://es.discourse.group/t/improve-inter-operability-between-bigint-and-regular-numbers/2419 "2025-08-21T04:51:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![natewatson999](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/natewatson999/32/2514_2.png) [@natewatson999](https://es.discourse.group/u/natewatson999)\
**Post date:** [August 21, 2025, 4:51am UTC](https://es.discourse.group/t/improve-inter-operability-between-bigint-and-regular-numbers/2419/1 "2025-08-21T04:51:53Z")

</div>

Right now, when you perform math between BigInts and regular numbers, it creates TypeErrors. While this makes sense for numbers with values after the decimal point, it does not make sense for Integers. For the Integer case, they should simply be cast to BigInts instead.

Right now, this is how addition works:

```javascript
const a = BigInt(8) + 7
Uncaught TypeError: Cannot mix BigInt and other types, use explicit conversions

```

This is how I think it should work:

```javascript
const a = BigInt(8) + 7;
const b = a===BigInt(15)
//b evaluates to true

```

---

<div class="post-metadata">

**Author:** ![tabatkins](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/tabatkins/32/170_2.png) [@tabatkins](https://es.discourse.group/u/tabatkins)\
**Post date:** [August 21, 2025, 8:55am UTC](https://es.discourse.group/t/improve-inter-operability-between-bigint-and-regular-numbers/2419/2 "2025-08-21T08:55:30Z")

</div>

That sort of implicit promotion was intentionally disallowed when BigInts were being designed, because BigInts aren’t a superset of Number. We wanted to avoid an accidental promotion, which then _later_ caused an error (possibly a _logic_ error, rather than a JS exception) because you were now doing division on a BigInt but intended the result to be fractional.
