Partial 實用程式類型是在 TypeScript 2.1 版中引入的,它是用來将類型的所有屬性都變為可選的。 這意味着開發人員将不再需要為類型的所有屬性設定值。
如何使用Partial
Partial類型使用起來很簡單,因為它隻需要傳遞一個類型 T ,其中 T 可以是任何對象類型,無論它是否是已定義類型。
為了更好地了解 Partial 類型,讓我們看一下下面的示例,其中我們有 Blog 接口,
請注意,Blog 界面由六個屬性鍵組成,除了 featureImageUrl 之外,它們都是必需的。 是以,如果我們想為 Blog 類型的變量指派,我們必須填寫所有必要的資料來遵循 Blog 接口的定義。
然而,在開發過程中,不知道blog所有的值的情況是很常見的,尤其是當我們有部落格的草稿時。 但是現在如果不能傳遞所有屬性将導緻 TypeScript 錯誤。 例如,如果我們隻在草稿變量中傳遞 title 屬性,如下面的代碼片段:
這段代碼TS會報錯,說缺少必要字段。
一個解決方案就是将所有屬性設定為可選的,加上?
但是,并非總是可以使所有屬性鍵都是可選的。 并且它将放棄TS的對字段檢測能力,因為它使所有這些屬性都是可選的,大部分情況,這種檢測還是必要的。是以建議不要這樣做,這種情況就是Partial的用武之地了,
了解Partial定義
在 github 中,你可以找到關于Partial的定義,如下:
可以看到,非常簡單,它将使用keyof,周遊T類型中的所有屬性,然後将它們加上?轉換成可選的屬性,最後傳回一個新類型。
使用示例
當僅需要更新資料庫中的某些字段的時候
如果我們僅需要某些字段是比選的,改怎麼做?
可以使用PICK把他們組合起來:
比如這樣,content就是必填字段,沒有就報錯。
加上就可以了。
最後:
總而言之,Partial 是一個很實用幫助類型,它允許我們在代碼中定義的類型具有靈活性,而無需改變原始資料類型。
感謝閱讀!