TypeScript 之 Record

正文

在 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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章