TypeError: 不能混合 BigInt 和其他类型,使用显式转换我试图添加/混合 BigInt 与 var

问题描述

我试图使用 BigInt 将大数相加并添加到总和中。

var sum=0; 
    for(let i in ar){
        sum += BigInt(ar[i]);
    }
    return (sum);  

但有一个错误说:

sum += BigInt(ar[i]);
               ^

TypeError: Cannot mix BigInt and other types,use explicit conversions

解决方法

我尝试并回答说我们不能将 BigInt 混合到其他类型。所以我将整数和转换为 BigInt,然后将其添加到 BigInt。 如“https://javascript.info/bigint”中所述:

警报(1n + 2); // 错误:不能混合 BigInt 和其他类型

让 bigint = 1n; 让数字 = 2;

// 数字到 bigint 警报(bigint + BigInt(数字)); // 3

// bigint 到数字 警报(数字(bigint)+数字); // 3 所以我现在的工作解决方案是:

var sum=0
for(let i in ar)
    sum = BigInt(sum) + BigInt(ar[i]);
return (sum);