天天看點

Typescript - 什麼是Partial及如何使用

作者:Web技術前沿
Typescript - 什麼是Partial及如何使用

Partial 實用程式類型是在 TypeScript 2.1 版中引入的,它是用來将類型的所有屬性都變為可選的。 這意味着開發人員将不再需要為類型的所有屬性設定值。

如何使用Partial

Partial類型使用起來很簡單,因為它隻需要傳遞一個類型 T ,其中 T 可以是任何對象類型,無論它是否是已定義類型。

Typescript - 什麼是Partial及如何使用

為了更好地了解 Partial 類型,讓我們看一下下面的示例,其中我們有 Blog 接口,

Typescript - 什麼是Partial及如何使用

請注意,Blog 界面由六個屬性鍵組成,除了 featureImageUrl 之外,它們都是必需的。 是以,如果我們想為 Blog 類型的變量指派,我們必須填寫所有必要的資料來遵循 Blog 接口的定義。

Typescript - 什麼是Partial及如何使用

然而,在開發過程中,不知道blog所有的值的情況是很常見的,尤其是當我們有部落格的草稿時。 但是現在如果不能傳遞所有屬性将導緻 TypeScript 錯誤。 例如,如果我們隻在草稿變量中傳遞 title 屬性,如下面的代碼片段:

Typescript - 什麼是Partial及如何使用

這段代碼TS會報錯,說缺少必要字段。

Typescript - 什麼是Partial及如何使用

一個解決方案就是将所有屬性設定為可選的,加上?

Typescript - 什麼是Partial及如何使用

但是,并非總是可以使所有屬性鍵都是可選的。 并且它将放棄TS的對字段檢測能力,因為它使所有這些屬性都是可選的,大部分情況,這種檢測還是必要的。是以建議不要這樣做,這種情況就是Partial的用武之地了,

Typescript - 什麼是Partial及如何使用

了解Partial定義

在 github 中,你可以找到關于Partial的定義,如下:

Typescript - 什麼是Partial及如何使用

可以看到,非常簡單,它将使用keyof,周遊T類型中的所有屬性,然後将它們加上?轉換成可選的屬性,最後傳回一個新類型。

使用示例

當僅需要更新資料庫中的某些字段的時候

Typescript - 什麼是Partial及如何使用

如果我們僅需要某些字段是比選的,改怎麼做?

可以使用PICK把他們組合起來:

Typescript - 什麼是Partial及如何使用

比如這樣,content就是必填字段,沒有就報錯。

Typescript - 什麼是Partial及如何使用

加上就可以了。

最後:

總而言之,Partial 是一個很實用幫助類型,它允許我們在代碼中定義的類型具有靈活性,而無需改變原始資料類型。

感謝閱讀!

繼續閱讀