確保物件符合介面:刪除無關屬性
TypeScript 介面定義類別或物件的契約規範。然而,在實作過程中,可能會新增超出介面定義的附加屬性,從而導致不一致。解決這個問題變得至關重要,特別是當透過 angular.toJson 傳遞簡化的物件進行 RESTful 通訊時。
考慮一個帶有單一屬性測試的介面MyInterface:
<code class="typescript">interface MyInterface { test: string; }</code>
及其附加的實作property newTest:
<code class="typescript">class MyTest implements MyInterface { test: string; newTest: string; }</code>
問題:
問題:問題: >
當從像MyTest 這樣的物件分配時,我們如何確保簡化的物件僅包含MyInterface 中聲明的屬性,排除newTest?答案:
<code class="typescript">class MyInterface { test: string = undefined; }</code>
<code class="typescript">import _ from 'lodash'; const before = { test: "hello", newTest: "world"}; let reduced = new MyInterface(); _.assign(reduced , _.pick(before, _.keys(reduced))); console.log('reduced', reduced)//contains only 'test' property</code>
以上是我們如何確保物件在透過 angular.toJson 傳遞時僅包含其介面中定義的屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!