![エンジニア1](https://3chome.net/wp-content/uploads/2023/07/boy.png)
JSとTSに分かれるのは知ってるけど。
とりあえずjsx,tsxを使っておけばいいんじゃないの?
![3丁目オーナー](https://3chome.net/wp-content/uploads/2023/07/チベットスナギツネ.png)
たしかにな、わしも最初はよく分かってなくてそうじゃったなあ〜
でも、初級者レベル以降は、しっかり使い分けは大切じゃよ
JavaScriptとTypeScriptの違い
![JavaScriptとTypeScriptの違い](https://3chome.net/wp-content/uploads/2023/07/JavaScriptとTypeScriptの違い.jpg)
JavaScript(ジャバスクリプト)とTypeScript(タイプスクリプト)は、プログラミング言語であり、Web開発やアプリ開発などに広く使われていますが、いくつかの違いがあります。
開発の規模や目的に応じて、適切な言語を選択することが重要です。
TypeScriptは、JavaScript の上位互換のイメージでいてもらえればよいかと思います。
JavaScriptのメリット
- スピーディーかつ柔軟で簡単に使える
JavaScriptのデメリット
- 大規模プロジェクトやチームでの開発では問題が生じることがある
TypeScriptのメリット
- 開発初期から信頼性と品質を確保できる
- 保守性が格段に上がる
TypeScriptのデメリット
- コード記述に若干の手間がかかる
- コード量が増える
静的型付けと動的型付け
◆ JavaScript
動的型付け言語であり、変数の型を宣言せずに値を代入できます
実行時に変数の型が決定される
◆ TypeScript
静的型付け言語であり、変数の型を明示的に宣言する必要があります
コードをコンパイルする際に変数の型がチェックされます。
型のサポート
◆ JavaScript
型チェックがないため、変数の型を間違えたり、予期しないデータ型を扱ったりする可能性が大いにある。※特に久しぶりにコードを見たときなど見通しが悪くなる
◆ TypeScript
型チェックがあるため、コードの品質を向上させることができます
エラーを事前に検知してくれるため、バグを減らすことができる
開発の効率性
◆ JavaScript
型チェックがないため、開発初期の段階ではスピーディーかつ柔軟にコーディングできる
※大規模プロジェクトではデバッグが難しくなることがあります
◆ TypeScript
型チェックにより開発初期からエラーを防ぐことができます
大規模プロジェクトでの信頼性が向上します
生産性
◆ JavaScript
スピードが出せるため、短期間でのプロトタイプ開発に適しています。
◆ TypeScript
保守性が上があがるため、プロジェクトの規模が大きくなるまたは、長期化するほど恩恵を受けることができます
コードの品質向上に寄与します
TypeScript独自の機能
JavaScriptにはない型定義やインターフェース、ジェネリクスなどの機能を提供します
これにより、より堅牢なコードを記述することができる
![](https://3chome.net/wp-content/uploads/2024/04/スクリーンショット-2024-04-19-1.57.18-160x90.png)
![](https://3chome.net/wp-content/uploads/2024/04/asdfインストールしてみよう!-160x90.png)
.jsと.jsxの違い
.jsと.jsxとは、両方ともJavaScriptファイルの拡張子であり、下記の違いがあります
<div>などHTML風のタグを使うときと使わないときで使い分ければOK
- .jsが使わない時
- .jsxが使う時
ファイルの内容
◆ .js
通常のJavaScriptファイルを表します
◆ .jsx
JSX(JavaScript XML)を表します
JSXは、Reactなどのライブラリで使用される、JavaScriptとXML風の記法を組み合わせたものです
JSXのサポート
◆ .js
JSXはデフォルトではサポートされていません
ReactなどのライブラリでJSXを使いたい場合は、別途設定を行う必要があります
◆ .jsx
JSXがそのまま使用できます
ReactUIコンポーネントを直接記述することができます
.jsと.jsxの使い分け
.jsxと.jsの使い分けは、主にReactの開発において重要です。
Reactプロジェクトでは、一般的にUIコンポーネントを.jsxファイルに記述し、その他のロジック系のJavaScriptコードは.jsファイルに記述します。
◆ .js
通常のJavaScriptファイルとして使用します。
Reactを使用しないプロジェクトや、Reactコンポーネントを別のファイルで記述する場合に適しています。
JSXを使用しない場合には、.jsファイルに純粋なJavaScriptを書くことが一般的です
◆ .jsx
ReactUIコンポーネントを記述する際に使用します。
JSXを使うことで、HTML風の記法でReactUIコンポーネントを記述できます。
Reactの開発では、一般的に.jsxファイルを使用することが推奨されています。
.jsxファイルを使用することで、Reactのコードをよりシンプルで直感的に記述できます。
.tsと.tsxの違い
◆ .ts(TypeScriptファイル)
TypeScriptの標準的なファイル拡張子です
通常のTypeScriptコードを記述するために使用されます
Reactを使用しないプロジェクトや、Reactコンポーネント以外のTypeScriptコードを記述する場合に使われます
◆ .tsx(TSXファイル)
TypeScriptとXML風の構文(JSX)を併用するReactのコンポーネントを記述するためのファイル拡張子です
jsxのTypeScript版ですね
.tsxと.tsの使い分け
.jsと.jsxと同じでOK
tsファイルには、下記のようなファイルを作成します。
- 型の定義:〇〇〇Type.ts
- カスタムフック:use〇〇〇.ts
- 定数定義:〇〇〇Constants.ts
参考にReactの開発でよく登場する使い方を紹介します。
![](https://3chome.net/wp-content/uploads/2024/05/スクリーンショット-2024-05-18-15.25.32-160x90.png)
![](https://3chome.net/wp-content/uploads/2023/07/【React&TypeScript入門】アプリ開発!お困りごとの解決方針-160x90.png)
理解が進むreactとtypescriptの違いの話
![](https://3chome.net/wp-content/uploads/cocoon-resources/blog-card-cache/81ce0b745ebb42a98dd7dd4c4cd7a34f.jpg)
![](https://3chome.net/wp-content/uploads/cocoon-resources/blog-card-cache/1c4b61f33b59c88230a1725f31fe1a6e.jpg)
![](https://3chome.net/wp-content/uploads/cocoon-resources/blog-card-cache/c19d49386d0d2d99336ccb2f8bf26c69.jpg)
![](https://3chome.net/wp-content/uploads/cocoon-resources/blog-card-cache/eab05d687c92f6deff6e9c753f32e413.jpg)
さいごに
よくわからないので、とりあえずjsxやtsxを使っているという方もいるかと思いますが、使い分けをすることで見通しが良くなりますので、お試しください。
![](https://3chome.net/wp-content/uploads/2023/08/【React&TypeScript入門】人気の組み合わせで爆速環境構築伝授-160x90.jpg)
![](https://3chome.net/wp-content/uploads/2024/05/スクリーンショット-2024-05-24-15.36.10-160x90.png)
![](https://3chome.net/wp-content/uploads/2024/05/スクリーンショット-2024-05-23-20.48.27-160x90.png)
![](https://3chome.net/wp-content/uploads/2024/04/スクリーンショット-2024-04-22-21.31.56-160x90.png)
寄付の依頼
もし、少しでもご参考になりましたらサイト運営への寄付をお願いします。
とても励みになります。
If you would like to help, please make a donation to the site management.
It is very encouraging.
BTC (ビットコイン) アドレス |
---|
35AfkHtN3paTC1iNVtHg6BDmCnHmffzQWM |
DEEPコイン アドレス |
---|
0x43Dbe7F99b4A31bF184b98A8A814ADEC48FB789D |
コメント