[Day14] TS:什麼!TypeScript 中還有迴圈的概念 - 用 Mapped Type 操作物件型別
)
上面這個是今天會提到的內容,如果你已經可以輕鬆看懂,歡迎直接左轉去看我隊友們的精彩文章!
Index Signatures & Indexable Types
在了解 Mapped Type 之前,需要先來看一下它的前身 Index Signatures。一般來說,在 TypeScript 裡定義物件的型別會需要把物件的每一個 key 和 value 的型別都定義清楚,像是這樣:
type Person = {
firstName: string;
lastName: string;
age: number;
};
但有些時候,因為一些原因,也許是 key 的名稱不是那麼重要時,或者 key 的可能太多時,我們可以使用 index signatures 來定義這個物件,例如,定義一個 key 為 string
,value 則為 string
或 number
的型別:
type PersonDict = {
// "key" 可以是取成任何名稱
[key: string]: string | number;
};
在 [key: string]
中的這個 key
可以是任何名稱,你也可以改成 [property: string]
效果是一樣的。