セミコロン、つける派?つけない派?
プログラムを書いていて、JS、TSのセミコロンをどうすべきか迷う場面があったので、一度ちゃんと調べてみようと思いました。
・セミコロンをつけなくてもよい
・むしろつけないのが推奨されている
・セミコロンをつけないといけない場面があるのでつけた方がよい
・JSはつけた方がいいが、TSはつけなくてもいい
・セミコロンが視覚的にクールじゃない
など、この記事を書いた時点では、いろんな人がいろんなことを言っている状態のようです。
どちらにもメリット・デメリットがあり、それぞれの場面によって判断がされている、というのが現状のようですね。
デファクトに委ねたかった私としては、(調べて総合的に判断するのが)めんどくさいな笑、というところでしたが苦笑。
結論
先に結論を書きますが、、、私は「セミコロンはつける」で行こうと思います!
理由は単純で、無難だから、です(笑)
(自分が「つけない」判断をして何かが起きるのが嫌だから、です笑)
Prettierの設定でいうとこういうことですね。
{
"semi": true
}
JavaScript
まずはJavaScriptですが、いくつか参考ページを見てみたところによると、「(TypeScriptと比べて)JavaScriptではセミコロンを付けないと落とし穴がいくつかある」という情報がありました。
致命的な何かがある場合は避けた方がいいなということで、JSでは「つける」でいいのでは。
TypeScript
TypeScript Deep Dive 日本語版のスタイルガイド(コーディング規約)のセミコロンのセクションにはセミコロンを使用するように書かれています。
セミコロンを使用してください。
https://typescript-jp.gitbook.io/deep-dive/styleguide#semikoron
その他、TSではつけなくてもいい、TSはつけない派、という意見も多く見られました。
TypeScriptに関しては、セミコロンつけるつけない論争は、意見が割れているように思いました。
まとめ
こういった、選択肢がある場面でどちらを選択すべきかが世の中的に明確に定まっていないことは、プログラミング界隈ではあるあるだと思います。
プログラミング言語をどうするか、フレームワークをどうするか、Vue.jsかReactかSvelteか、バージョンはどうするか、インデントはタブか半角スペースか、セミコロンをつけるかつけないか、、、
デファクトスタンダードが定まっていない時期、とも言えるかもしれません。
プロダクトがブラッシュアップされ続け、切磋琢磨し、新陳代謝が繰り返され、よりよいものができる過程なのかもしれません。
私自身は、最終的には「好きな方」(愛着が湧く方)でいいんじゃないかと思っています。その「好き」に対して理由を聞かれたときに答えられるにしておくとエンジニア力が高まる気がします。