タイトルが長い。
VS CodeでReact書いてるとき、ファイル拡張子が.js
ではシンタックスハイライトや補完が効かない問題がある。.jsx
にするとちゃんと補完が効いてくれるようになって助かる。
でもみんながみんなVS Code使ってるわけじゃないし、GitHubみてると.js
で書いている人もいれば.jsx
で書いているひともいる。
いったいどっちがいいんだ〜 ってなる。
VS Codeで.(js|ts)
でも補完やシンタックスハイライトが効くようにする方法
ここの回答によると
{ "files.associations": { "*.js": "javascriptreact" } }
VS Codeのsettings.json
のfiles.associations
の設定でjs拡張子に対してjavascriptreact
にすればいいらしい!
こうすると.(js|ts)
の拡張子でJSX書いても問題なく補完効いたりシンタックスハイライト効いたりしてくれるはず。
拡張子は結局どっちにすべきか
結論からいうと.jsx
あるいは.tsx
にしておいたほうがベター、ということに自分の中ではなった。
.jsx
ならJSX記述がされていることがファイルを開かなくても察せられる- Reactのプロジェクト見てるとき
.jsx
ならおそらくコンポーネントが記述されているはずと予想がつく
- Reactのプロジェクト見てるとき
.js
のままVS CodeにJSXとして認識させるには上記のように設定の変更が必要- デフォルトに寄せておくほうがよさそう
- VS Codeのみならず他のエディタでも同様の問題は起こりそう
という理由から、JSX書くなら拡張子は.jsx
、TSで書くなら.tsx
にしておいたほうがよさそう。
餅は餅屋、という単純なはなしかもしれない。
関連エントリ
これはonSave時に保存してフォーマットして欲しくない拡張子があって言語毎に設定のスコープを切っている場合のみにやらないといけない設定。
そんな人はあんまりいない気がするし、スコープ切らないなら.(jsx|tsx)
で運用してもこのonSaveの設定はイジる必要はないはず。