簡介
本文簡單介紹一下 TypeScript Omit 的用法與範例,
更多資料可以參考官方文件
說明
Omit 字義為忽略、省略,在 TypeScript 中是一種 Utility Type,
使用方法如下:
1 | type NewType = Omit<OldType, "name" | "age">; |
第一個參數是傳入的 Type, 第二個參數是要忽略的欄位,
並會回傳一個新的 Type, 這是 TypeScript Utility Types 的標準用法。
具體一個例子
1 | interface LocationX { |
說明:
interface
可以用extends
加上新欄位,借此實現 override 欄位的功能type
使用&
作擴展,一樣的方式先省略(Omit)再擴展欄位- 相反的 Utility Type 有
Pick
這些 Utility Types 蠻有趣的,有時間應該將它們補完。
20220913 補充
進一步探討 Omit
Omit
適用於type
與interface
與
Omit
相反的就是Pick
Omit
與Exclude
的差別Omit
移除指定 Type 的欄位Exclude
移除 union literal Type 當中的成員Exclude
可以適用於enum
舉例說明:
下面兩個例子分別使用了 union literal
與 enum
,
在這種情況下如需要忽略部份的成員, 請使用 Exclude
,
你要用 Omit
也不會報錯, 但是無法達到編譯時期警告的效果
1 | type TrafficLight = "red" | "yellow" | "green"; |
1 | enum TrafficLight { |
參考
- https://bobbyhadz.com/blog/typescript-override-interface-property
- https://timmousk.com/blog/typescript-omit/
- https://www.typescriptlang.org/docs/handbook/utility-types.html#omittype-keys
- https://ithelp.ithome.com.tw/articles/10269471
(fin)