実行プロセスにインターフェイスの特定のプロパティのみが必要な場合、不要なプロパティはスペースを消費するだけであるため、パフォーマンス低下の主な原因になります。 JavaScript では、実行時にインターフェイスの不要なプロパティを除外する方法はありません。幸いなことに!この弱点またはユースケースは、TypeScript が提供する「Omit」および「Pick」タイプ ユーティリティによって処理されます。これは、特定のプロパティのみを選択するのに非常に役立ちます。
このブログでは、次のセクションを取り上げて、TypeScript の省略型とその逆について説明します。
- TypeScript の省略型とは何ですか?
- TypeScript の Omit Type の反対は何ですか?
TypeScript の省略型とは何ですか?
TypeScript 「省略」 type は、提供されたインターフェイスから新しいインターフェイスを生成します。 「」 として提供されるプロパティをスキップまたは除外します。 '鍵' 。残りのすべてのプロパティの値を取得して処理しますが、として渡されるプロパティの値は受け入れません。 '鍵' 。簡単に言えば、 「省略」 Type には「Key」として渡されるプロパティが除外され、残りのプロパティは変わりません。
構文
TypeScript の Omit Type の構文は次のとおりです。
省略 < デモタイプ、キー1 | キー2 >
どこ 「デモタイプ」 はインターフェイスです。 「キー1」 そして 「キー2」 プロパティは新しいプロパティに追加されます 'タイプ' それは経由して生成されます 「省略」 。
を理解するための例 「省略」 タイプを以下に示します。
タイプ linuxhintType = {fName: 文字列;
l名前: 文字列;
年齢: 番号;
}
タイプ newType = 省略;
const 固有: newType = {
f名前: 「ジョン」 、
l名前: 「ドー」
} ;
コンソール.ログ ( 特定の年齢、特定のfName ) ;
上記のコードの説明:
- まず、 'タイプ' 名前付き 「linuxhintType」 が定義されており、という名前の複数のプロパティが含まれています。 「fName」 、 「名前」 、 そして '年' 初期化。
- 次に、 「省略」 型が使用されます。 「linuxhintType」 最初の引数と Key として '年' 。この省略により、すべてのプロパティが取得されます。 「linuxhintType」 「年齢」プロパティのみを除外します。
- 「省略」タイプによって取得されたプロパティは、新しいファイルに保存されます。 'タイプ' 名前付き '新しいタイプ' 。
- 次に、次の型アノテーションを持つ新しい変数が作成されます。 '新しいタイプ' 残りのプロパティの値が設定されます。
- その後、新しい変数を使用して、残りのプロパティと除外されたプロパティが取得され、検証のためにコンソール ウィンドウに表示されます。
コンパイル後、コンソール ウィンドウは次のようになります。
コンソール ウィンドウのスナップショットには、除外されたファイルへのアクセス中に型エラーが生成されたことが示されています。 '年' 財産。 「省略」タイプの詳細については、関連するリンクを参照してください。 記事
TypeScript の Omit Type の反対は何ですか?
TypeScript では、その逆です。 「省略」 それは '選ぶ' タイプ。このタイプでは、使用可能になる特定のプロパティが選択または選択され、選択されなかった残りのプロパティはすべて除外されます。つまり、全く逆のことですが、 「省略」 タイプ。同じ 2 つの引数を受け取ります 'タイプ' そして '鍵' どこ 'タイプ' インターフェイスまたはクラスです。 '鍵' プロパティが含まれ、残りは除外されます。複数のプロパティの場合、各プロパティは、 '連合' オペレーター 「|」。
構文
TypeScript の Pick Type の構文は次のとおりです。
どこ、 「デモタイプ」 は、そのインターフェイス、クラス、または型です。 「キー1」 、 「キー2」 、 そして 「キー3」 プロパティが選択されます。
ここで、よりわかりやすくするために例を見てみましょう。
例: 特定のプロパティの選択
この場合、以下に示すように、インターフェイスまたはクラスの特定のプロパティが「Pick」タイプを使用して選択され、残りのプロパティは完全に除外されます。
インターフェイス linuxhintInter {fName: 文字列;
l名前: 文字列;
年齢: 番号;
}
タイプ newType = 選択;
const 固有: newType = {
f名前: 「ジョン」 、
l名前: 「ドー」 、 年: 3.4 } ;
上記のコードの説明:
- まず、インターフェース 「linuxhintInter」 という名前の 3 つのプロパティを含むように作成されます。 「fName」 、 「名前」 、 そして '年' 。
- 次に、 '選ぶ' インターフェイスを最初のパラメータとして受け取るタイプが使用され、 '年' そして 「fName」 Union 演算子で区切られた 2 番目のパラメータとして 「|」 。
- これ '選ぶ' type という名前の新しい型を定義します。 '新しいタイプ' のみが含まれます '年' そして 「fName」 プロパティを削除し、残りのすべてのプロパティを除外します。 「名前」 。
- さあ、これを設定してください '新しいタイプ' 「特定の」変数の型として使用し、すべてのインターフェイスのプロパティを変更してみます。特定のプロパティのみが使用できるため、これによりエラーが発生します。
コンパイル後、コンソール ウィンドウは次のようになります。
上記のスナップショットは、選択したタイプに含まれない、または使用できないプロパティをプログラムが変更しているため、エラーが発生していることを示しています。
TypeScript の Omit とは逆に機能する型について学習しました。
結論
の反対 「省略」 TypeScript の type は、 '選ぶ' type は、指定されたプロパティのみを含む新しいタイプを生成し、メイン インターフェイスの残りのプロパティをすべて除外します。一方、 「省略」 TypeScript の type も新しい型を生成しますが、提供されたすべてのプロパティを除外し、残りのプロパティを受け入れるか含めます。この記事では、TypeScript での型の省略の反対について説明しました。