本指南探討了Typescript'sRecord
類型,這是一種用於創建具有一致價值類型的對象的強大工具。我們將介紹其定義,語法,與元素的比較,詳盡的案例處理和枚舉映射等實用應用,以及與Partial
>,Pick
和Readonly
> Record
類型可讓您定義所有值共享相同類型的對像類型,而鍵可能會變化。 它的定義是:
Record
Record<Keys, Type>
Keys
>
Type
創建一個對象,其中每個鍵是字符串,每個值都是數字。 vs.Record<string, number>
Record
兩者都處理數據收集,但有很大差異:Tuple
Record
Tuple
>示例:
basic
用法// Record: string keys, number values type AgeMap = Record<string, number>; // Tuple: string and number in specific order type Person = [string, number];
定義ARecord
涉及指定密鑰和值類型:
實用應用Record
// Object with string keys and string values type User = Record<string, string>;
> 詳盡的案例處理:
>確保所有枚舉或工會的案例都已處理:>
通用類型檢查:enum Status { Pending, Completed, Failed } const statusMessages: Record<Status, string> = { [Status.Pending]: "Request pending...", [Status.Completed]: "Request complete!", [Status.Failed]: "Request failed." };
枚舉數據映射:
function createRecord<K extends string, T>(keys: K[], value: T): Record<K, T> { return keys.reduce((acc, key) => ({ ...acc, [key]: value }), {}); }
>查找表:
enum Color { Red, Green, Blue } const colorHex: Record<Color, string> = { };
迭代
type CountryCode = "US" | "CA"; interface CountryInfo { name: string; } const countries: Record<CountryCode, CountryInfo> = { US: { name: "United States" }, CA: { name: "Canada" } };
Record
:迭代在鑰匙值對上。 >
:迭代在鍵上。
Object.entries()
for...in
>
Object.keys()
Object.values()
>將其功能增強:
Record
態
類型是打字稿中的寶貴資產,它提供了一種簡潔而安全的方法來管理具有一致價值類型的對象。 它的靈活性與其他實用程序類型相結合,允許創建可靠和可維護的代碼。 要進一步探索,請諮詢官方的打字稿文檔和其他資源。 以上是理解打字稿記錄類型的綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!Record<Keys, Type>
Record
結論