Javascript から Typscript への移行の概念を知っておく必要がある

Barbara Streisand
リリース: 2024-11-25 19:24:15
オリジナル
328 人が閲覧しました

Jumping From Javascript To Typscript Concept Should be Known

本当に学びたいですか?
マジで!
始めましょう、

注意すべき概念のリストは次のとおりです:

1.型と型アノテーション

  • 基本型: 文字列、数値、ブール値、任意、無効、未定義、null などの違いを理解します。

  • 型アノテーション: 型を明示的に宣言する方法を学びます (例: let age:number = 30;)。

  • 型推論: TypeScript はコンテキストから型を推論できますが、明示的な型をいつ使用するか、いつ推論に依存するかを理解することが重要です。

  • 共用体型: 型は複数の型を組み合わせることもできます (例: let value: string |number)。

  • リテラル型: 特定の値を指定できる型 (例: let Direction: 'left' | 'right';)。

2.インターフェイスと型エイリアス

  • インターフェース: オブジェクトの形状を定義するために使用されます (例: インターフェース User { name: string; age: number })。
  • タイプ エイリアス: カスタム タイプを作成できます (例: タイプ ID = string |number;)。
  • インターフェイスと型の違い: インターフェイスは拡張可能ですが、型エイリアスはより柔軟です (プリミティブ、共用体、交差などを定義できます)。

3.ジェネリック

  • ジェネリック関数: 複数の型を扱うことができる関数 (例: functionidentity(arg: T): T { return arg; })。
  • ジェネリック インターフェイス/クラス: ジェネリックをインターフェイスとクラスに適用します (例: インターフェイス Box { value: T; })。

4.型アサーションとキャスト

  • 型アサーション: 型について実際よりも詳しいことを TypeScript に伝えます (例: value = someValue を文字列として使用します)。
  • 非 Null アサーション: ! を使用します。値が null または未定義ではないことを TypeScript に伝えるため (例: someVar!.doSomething())。

5.構造型付け (ダック型付け)
TypeScript では、型は構造的です。つまり、型は名前ではなくプロパティに基づいて比較されます。 2 つの型が同じ構造を持つ場合、それらは同じ型とみなされます。

6.列挙型

  • 数値および文字列の列挙型: 名前付き定数のセットを定義できます (例: enum Direction { Up, Down, Left, Right })。
  • Const Enums: 逆マッピングが必要ない場合のより効率的な形式の列挙型 (例: const enum Color { Red, Green, Blue })。

7.型の絞り込み

  • 型ガード: typeof、instanceof、またはカスタム型述語を使用して、変数の型を絞り込みます。
  • 識別共用体: 共用体型を共通のプロパティ (識別子) と組み合わせて型を絞り込みます (例: type Circle = { kind: "circle"; radius:number };)。

8.高度なタイプ

  • 交差タイプ: 複数のタイプを 1 つに結合します (例: AdminUser = User & Admin; と入力します)。
  • マップされた型: 型のプロパティを変換できます (例: type ReadOnly = { readonly [P in keyof T]: T[P]; })。 ユーティリティ タイプ: Partial、Pick、Omit、Record などの一般的なタイプ変換を簡素化する組み込みタイプ

9.モジュールと名前空間

  • ES モジュール: TypeScript は ES6 モジュール構文 (インポート/エクスポートなど) をサポートしています。モジュールの解決と、デフォルトと名前付きエクスポートの違いを理解することが重要です。
  • 名前空間: TypeScript にも独自の名前空間システムがありますが、最新のコードベースでは ES モジュールを優先するため、一般的に推奨されません。

10. JavaScript ライブラリの処理

  • DefinitelyTyped: 独自の型を提供しない JavaScript ライブラリの型定義をインストールして使用する方法を学びます (例: @types/lodash 経由)。
  • サードパーティ ライブラリの型の宣言: 利用可能な型がない場合に、ライブラリまたはグローバル オブジェクトのカスタム型宣言 (*.d.ts ファイル) を記述する方法を理解します。

11.クラスと継承

  • TypeScript クラス: JavaScript クラスに似ていますが、型チェックが追加されています。
  • アクセス修飾子: public、private、protected キーワードは、クラス メンバーの可視性を制御します。
  • Readonly: プロパティを読み取り専用としてマークします (例: readonly id:number)。
  • 抽象クラスとメソッド: 抽象クラスは直接インスタンス化できず、サブクラス化されることになります。

12.非同期/待機と約束
TypeScript は async/await と Promises を完全にサポートしていますが、型アノテーションを追加すると、Promise や async 関数などの型に関する問題を回避できます。

13.デコレータ
実験的機能: デコレータは、クラスおよびクラス メンバーに注釈を付けたり変更したりするための特別な構文です。 Angular などのフレームワークでは便利ですが、TypeScript ではまだ実験段階です。

14.厳密な型チェック オプション

  • 厳密モード: より厳密な型チェック オプション (strictNullChecks、noImplicitAny など) を有効にします。
  • tsconfig.json: このファイルを使用して TypeScript を構成し、コンパイラ オプションを有効または無効にする方法を学びます。

15. TypeScript と JavaScript の相互運用性

  • JavaScript コードの操作: TypeScript は JavaScript と完全な互換性があります。 TypeScript を既存の JavaScript プロジェクトに徐々に導入し、TypeScript から JavaScript を呼び出すことも、その逆も可能です。
  • JSDoc コメント: JavaScript で JSDoc スタイルのコメントを使用して、TypeScript に型情報を提供できます。これは、混合 JS/TS コードベースで役立ちます。

16.エラー処理
TypeScript は、null または未定義のプロパティへのアクセスなど、コンパイル時に一般的なエラーを検出するのに役立ちます。 TypeScript での try/catch の使用方法と、適切な型注釈を理解することが重要です。

17. TypeScript 構成 (tsconfig.json)

  • コンパイラ オプション: モジュールの解像度、厳密さの設定、ターゲット環境などのコンパイラ設定を構成する方法を学びます。
  • ソース マップ: ブラウザーまたは Node.js での TypeScript のデバッグを容易にするためにソース マップを設定します。

18.ユーティリティ関数とタイプ

  • keyof、typeof、instanceof: これらのユーティリティ演算子と、それらを使用して型を抽出および操作する方法を理解します。
  • インデックス署名: オブジェクトのキーと値のタイプを動的に定義できます (例: [key: string]: any)。

19.条件付きタイプ
TypeScript では、条件に基づいて型を定義できます (例: type IsString = T extends string ? true : false;)。

20. TypeScript のバージョン管理と互換性

  • 新機能: TypeScript は急速に進化している言語であるため、常に新しいバージョンの最新情報を入手してください。テンプレート リテラル型、型述語、より厳密な型チェックなどの新機能により、コードを改善できます。

これらの TypeScript 固有の概念をマスターすることで、静的型システムを含む TypeScript の機能を最大限に活用して、プレーンな JavaScript と比較してコードの品質、保守性、およびスケーラビリティを向上させることができます。

私のことをもっと知りたいなら、検索エンジンに sallbro と書いてください...

以上がJavascript から Typscript への移行の概念を知っておく必要があるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート