Index Signatures 任意屬性
有時候知道value的狀態,但還不確定屬性名,就可以使用任意屬性來描述可能的型別。
1 | interface Person { |
此範例定義了任意屬性propName的屬性名字型別是string,然後value是任意型別。
如果是[propName: number]就是只能取number型別的屬性名。
這裡的propName可以隨意取,取[key: string]也可以。
範例
1 | interface Person { |
要注意的是:
一旦定義了任意屬性,那麼確定屬性和可選屬性的型別都必須是它的型別的子集
上述的例子報錯了,因為age的value型別是number,number不是string的子集
參考文章
https://willh.gitbook.io/typescript-tutorial/basics/type-of-object-interfaces