数値はただの数値ではない:コンパイラに単位のバグを見つけさせる方法
ミリ秒を要求される場所に秒を渡すようなバグは、どんなテストも通り抜けてしまう。ここでは、単位を TypeScript の型システムに直接エンコードして、実行時コストゼロで混在をコンパイル時に検出する方法を解説する。
ある関数がタイムアウトをミリ秒で要求する。そこに を渡す。後で別の関数がタイムアウトを秒で要求する。そこに を渡す。その間のどこかで を呼び出すと、1時間23分間何も起こらない。 TypeScript はここでは助けにならない。 と のどちらも…