JavaScriptはどんな言語か うまくやってくれるけどそれによってバグが起きてしまう

javascriptで以下のコードを書いた時に、結果は’5’になります。

5 + [] //文字列の5

人間がやろとしたことを予測していい感じに変換してくれているように見えます。

しかし、逆をいうとバグを発見しづらくなります。

このコードはエラーにならず、なんとなくうまくいってしまっているので、間違っていることに人間が気づかないのです。

そして、ユーザーが実際にシステムを触ったときに、おかしな挙動になります。

エラーではないのでどこがおかしいのかをピンポイントで発見することが難しく、発見に時間がかかります。

このようにjavascriptがうまいことやってくれることは、良いこともあるのですが、どちらかといえば悪い面の方が強いと思います。

そのようなときにTypeScriptで型安全にすれば、プログラムの実行前にバグに気づくことができるのです。