TSC代码中的'n'是什么?是否属于特定关键字?
结论
这里的n不是TSC专属的关键字,是JavaScript ES2020标准引入的BigInt类型字面量的固定后缀,TypeScript从3.2版本开始原生支持该语法。
具体作用说明
- 普通数字比如
1属于number类型,最多只能安全表示2^53 - 1的整数,超出这个范围会出现精度丢失问题。 - 数字后面加后缀
n就表示这是一个bigint类型的整数字面量,支持任意精度的整数运算,不会有溢出问题。 - 你贴的代码里参数
x和y都声明为bigint类型,运算时必须使用同类型的值,所以返回值里要写1n而不能写1,否则会报类型不匹配错误,也无法正常完成BigInt运算。
注意:
bigint类型不支持和number类型直接做运算,以下写法会报错:1n + 1 // 类型错误,无法将bigint和number相加需要手动统一类型后再运算:
1n + BigInt(1) // 正确,返回2n Number(1n) + 1 // 正确,返回2
内容的提问来源于stack exchange,提问作者AmateurDev
相关产品推荐
相关产品推荐

