TypeScript で文字列から数値型に変換する方法

TypeScript において文字列 (string) で表現された数字を、数値型 (number) に変換する方法をいくつか調べた。

const str = '16';
// 第2引数を省略すると10進数として解釈される
const num1 = parseInt(str);
// 第2引数を指定しても良い
const num2 = parseInt(str, 10);
// 小数をそのまま残すには parseFloat() を使う
const num3 = parseFloat(str);
// 先頭に + を付けるだけで変換可能
const num4 = +str;
// Number() のコンストラクタ引数として渡す
const num5 = Number(str);

いずれも同じように、10進数で変換できる。

string number
'16' 16
'016' 16
'-16' -16
'-016' -16
'16.5' 16.5
'016.5' 16.5
'-16.5' -16.5
'-016.5' -16.5

当たり前だが、小数に parseInt() を使うと整数になるので、そこだけは注意。

0 始まりの数値が8進数に解釈されてしまう問題は ECMAScript5 で解消していたらしい。