正文
在 TS 中,類似數組、字符串、數組、接口這些常見的類型都非常常見,但是如果要定義一個對象的 key 和 value 類型該怎麼做呢?這時候就需要用到 TS 的 Record 了。
上代碼:
interface PageInfo { title: string; } type Page = "home" | "about" | "contact"; const nav: Record<Page, PageInfo> = { about: { title: "about" }, contact: { title: "contact" }, home: { title: "home" }, };
很好理解,Record 後面的泛型就是對象鍵和值的類型。
比如我需要一個對象,有 ABC 三個屬性,屬性的值必須是數字,那麼就這麼寫:
type keys = 'A' | 'B' | 'C' const result: Record<keys, number> = { A: 1, B: 2, C: 3 }
參考資料
https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeystype