bigint型(長整数型)
JavaScriptのbigint型は、number型よりも大きな整数を扱えるプリミティブ型です。
bigint型リテラル
JavaScriptのbigint型のリテラルは整数値の末尾にn
をつけて書きます。
ts
constx = 100n;
ts
constx = 100n;
bigintリテラルをTypeScriptで用いるには、コンパイラーオプションのtargetをes2020以上にする必要があります。
bigint型の型注釈
TypeScriptでbigint型を型注釈するには、bigint
を用います。
ts
constx : bigint = 100n;
ts
constx : bigint = 100n;
BigInt関数
bigint型はBigInt関数を使って作ることができます。BigInt関数は第1引数に数値もしくは文字列を渡します。
ts
constx =BigInt (100);consty =BigInt ("9007199254740991");
ts
constx =BigInt (100);consty =BigInt ("9007199254740991");
TypeScriptでBigInt関数を用いるには、コンパイラーオプションのlibをes2020以上にする必要があります。
bigint型をnumber型と計算する
bigint型とnumber型はそのままでは一緒に演算をすることはできません。どちらかに型を合わせる必要があります。
ts
2n + 3;Operator '+' cannot be applied to types '2n' and '3'.2365Operator '+' cannot be applied to types '2n' and '3'.
ts
2n + 3;Operator '+' cannot be applied to types '2n' and '3'.2365Operator '+' cannot be applied to types '2n' and '3'.
number型が小数部を持っていない限り、より表現幅の広いbigint型に合わせる方が無難です。
ts
consti = 2n +BigInt (3);console .log (i );
ts
consti = 2n +BigInt (3);console .log (i );
bigint型を使う上での注意点
bigint型を直接JSON.stringify()
に渡すと、TypeErrorが発生します。
ts
JSON .stringify (12n);
ts
JSON .stringify (12n);
また、bigint型を含むオブジェクトをJSON.stringify()
に渡しても、TypeErrorが発生します。
ts
JSON .stringify ({x : 12n });
ts
JSON .stringify ({x : 12n });