长整型

数值类型变量精确表示的整数范围为 −253~253,超过此范围就无法精确表示整数。为了解决这个问题,TypeScript 中引入了长整型,用它来表示任意大小的整数。

长整型是 ECMAScript 2020 新增语法,因此需要设置编译时的目标 ECMAScript 版本,例如,在编译时使用 --target 参数来指定目标 ECMAScript 版本。

$ tsc d:\helloworld.ts --target es2020  //使用ECMAScript 2020作为目标版本
$ tsc d:\helloworld.ts --target esnext  //使用最新ECMAScript版本作为目标版本

以下为长整型变量的声明示例。在一个整数尾部加上 n,即表示该整数为长整型。

let bigintNumber1: bigint = 12349007199254740991n;
let bigintNumber2: bigint = -12349007199254740991n;

和数值类型变量一样,长整型变量不仅可以用于逻辑运算,例如,相等判断(运算符为 =====),数字大小判断(运算符为 <>),还可以用于算术运算,例如,基本的加减乘除计算(运算符为 +*/)等。

长整型和数值类型是两种完全不同的类型,因此长整型变量的值不能用于 Math 对象中的方法(因为它要求传入数值类型变量的参数),同时长整型变量和数值类型变量的值不能混合在一起进行数学运算,必须先将其转换成同一种类型(要么都是数值类型,要么都是长整型)。