アロー関数がただの代替構文ではないということは皆さまご存じかと思いますが、ではどちらをどのタイミングで使うべきなのかという論点については人によって結論がまちまちというか、まあ好みでいいじゃんみたいにはぐらかされることが多いように感じます。 ですがチーム開発ではそんなことも言っていられない1ので、今回は両者の性質の違いからstrictモード + TypeScriptの環境においてどちらをいつ使うのが合理的であるのかを考えていきます。 結論 結論から述べますと、アロー関数は function式を置き換えるためだけに使い function文を置き換えるために使うのは控えるべき です。つまり以下のような関数を考えた場合 function double(...nums: number[]): number[] { return nums.map(function (num) { return num