![A Comprehensive Guide to Understanding TypeScript Record Type](https://img.php.cn/upload/article/000/000/000/173898379374006.jpg)
このガイドは、一貫した値タイプを持つオブジェクトを作成するための強力なツールであるTypeScriptの<script>、<code>Record、<code>Partial。
<code>Pick<code>Readonlyタイプ<p> <strong>を理解します
<code>Recordタイプでは、すべての値が同じタイプを共有するオブジェクトタイプを定義できますが、キーは異なる場合があります。 その定義は次のとおりです
<p>
<code>Record:可能なキーを定義する弦リテラルまたは組合から派生したタイプの組合。
<pre class="brush:php;toolbar:false"><code class="language-typescript">Record<Keys, Type><ul>:キーに関連付けられているすべての値のタイプ<li>
<code>Keys
たとえば、<li>すべてのキーが文字列であり、すべての値が数字であるオブジェクトを作成します。
<code>Type vs. <p> <code>Record<string, number>
<p>両方ともデータ収集を処理しますが、大きく異なります:<strong>
<code>Record
<code>Tuple <p>:固定値タイプの名前付きプロパティ。 キー価値マッピングに最適です
<ul> <li><strong>:それぞれが異なるタイプで潜在的に潜在的に順序付けられた要素のリスト。 固定サイズのコレクションに役立ちます。<code>Record
例:<li>
<strong>
<code>Tuplebasicusage <p>
a<pre class="brush:php;toolbar:false"><code class="language-typescript">// Record: string keys, number values
type AgeMap = Record<string, number>;
// Tuple: string and number in specific order
type Person = [string, number];の定義には、キータイプと値タイプの指定が含まれます
<p>
<strong><code>Record実用的なアプリケーション
<p>
<code>Record
<pre class="brush:php;toolbar:false"><code class="language-typescript">// Object with string keys and string values
type User = Record<string, string>;徹底的なケースハンドリング:<p>列挙または組合のすべてのケースが処理されていることを確認してください:<strong>
<ol>
<li><p>汎用型チェック:<strong>レコードを生成する再利用可能な関数を作成します:
<pre class="brush:php;toolbar:false"><code class="language-typescript">enum Status { Pending, Completed, Failed }
const statusMessages: Record<Status, string> = {
[Status.Pending]: "Request pending...",
[Status.Completed]: "Request complete!",
[Status.Failed]: "Request failed."
};
データマッピングへの列挙<li><p>列挙:<strong>enumsからルックアップテーブルを作成:
<pre class="brush:php;toolbar:false"><code class="language-typescript">function createRecord<K extends string, T>(keys: K[], value: T): Record<K, T> {
return keys.reduce((acc, key) => ({ ...acc, [key]: value }), {});
}
<li><p>ルックアップテーブル:<strong>キーを値に効率的にマッピング:
<pre class="brush:php;toolbar:false"><code class="language-typescript">enum Color { Red, Green, Blue }
const colorHex: Record<Color, string> = {
};
<li><p><strong>タイプ を繰り返します
<pre class="brush:php;toolbar:false"><code class="language-typescript">type CountryCode = "US" | "CA";
interface CountryInfo { name: string; }
const countries: Record<CountryCode, CountryInfo> = {
US: { name: "United States" },
CA: { name: "Canada" }
};いくつかの方法で反復を可能にします:
<p><strong>:キーと価値のペアを反復します。<code>Record
:キーを繰り返します。<p>
<ul>:キーの配列を返します。<li>
<code>Object.entries():値の配列を返します。<li>
<code>for...in
<li>ユーティリティタイプを使用した高度な使用<code>Object.keys()
<li> <code>Object.values()と他のユーティリティタイプを組み合わせると、その機能が向上します:
<p>
<strong> <p>:特定のプロパティを選択します:<code>Record
<ul>
<li>
<p> <strong> <code>Pick :不変のオブジェクトを作成します:
<pre class="brush:php;toolbar:false"><code class="language-typescript">type Product = { name: string; price: number; description: string };
type ShortProduct = Pick<Product, "name" | "price">;
<li>
<p><strong> <code>Readonly :プロパティをオプションにします:<pre class="brush:php;toolbar:false"><code class="language-typescript">Record<Keys, Type>
<li>
<p><strong>ネストされた<code>Records:複雑な階層データ構造を作成します
<p>結論<strong>
<p>タイプは、タイプスクリプトの貴重な資産であり、一貫した値タイプのオブジェクトを管理するための簡潔でタイプに安全な方法を提供します。 その柔軟性は、他のユーティリティタイプと組み合わせて、堅牢で保守可能なコードを作成できます。 さらに調査するには、公式タイプスクリプトのドキュメントとその他のリソースを参照してください。</script>
以上がタイプスクリプトのレコードタイプを理解するための包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。