首頁 > web前端 > js教程 > 我們如何減少一個物件以符合 TypeScript 中的介面?

我們如何減少一個物件以符合 TypeScript 中的介面?

Mary-Kate Olsen
發布: 2024-11-01 03:58:02
原創
725 人瀏覽過

How can we reduce an object to conform to an interface in TypeScript?

物件簡化為介面一致性

在 TypeScript 中,介面定義物件屬性的契約,而類別則實作該介面。然而,通常會遇到具有介面中定義之外的附加屬性的對象,這在使用 JSON.stringify() 等將物件轉換為 JSON 的工具時可能會帶來挑戰。

為了解決這個問題,有必要減少一個對象,使其僅包含其實現的介面中的屬性。

問題:

嘗試使用JSON.stringify( 將具有附加屬性的物件轉換為JSON 時),額外的屬性包含在輸出中,可能會使JSON無效。

解決方案 1:

由於 TypeScript 介面沒有運作時表示,因此不能用於強制執行財產限制,需要一種解決方法。透過將介面定義為類,我們可以使用像 Lodash 這樣的庫從目標物件中僅選取介面中定義的屬性。

例如:

<code class="typescript">import _ from 'lodash';

const reducedObj = new MyInterface();
_.assign(reducedObj, _.pick(originalObj, _.keys(reducedObj)));</code>
登入後複製

此方法確保簡化的物件僅包含介面中定義的屬性。

解決方案 2:

作為另一種方法,可以手動循環目標物件的屬性,檢查每個屬性是否都存在於介面定義中。如果是,則將該屬性新增至縮減的物件中。此方法需要小心謹慎,以避免添加意外的屬性。

雖然沒有直接的方法可以強制強制屬性與 JavaScript 中的 TypeScript 介面保持一致,但這些解決方法提供了實用的解決方案來減少物件符合介面定義。

以上是我們如何減少一個物件以符合 TypeScript 中的介面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板