TypeScriptを使っていたも検知できないバグ

TypeScriptを使うと堅牢なコードを書くことができますが、静的解析なので検知できないバグももちろん存在します。

たとえば、TypeScriptで関数を書くと、引数の型と戻り値の型を定義できるので、この関数を利用する時に誤った引数を渡したり、関数を変更する時に期待していない戻り値を返そうとしてしまうことを防げます。

const myFunc = (use: {name: string; age: number}): number => {
    // do something
}

例えばこの関数は、name が string で、age が number であるオブジェクトを引数にとり、number を返すことを強制できます。

しかし、この関数内でnameを別の値に書き換えるようなバグがあった場合には、TypeScriptで気付くことはできません。

引数のオブジェクトのプロパティが変更されてしまうことで、元のオブジェクトが変更され、予期せぬバグが発生します。

こういった型の世界だけでは検知できないバグが存在します。

逆にいうと、TypeScriptが検知できない部分だけに気を使えば良いので、人に対する負荷はかなり減ると思います。