JavaScript オブジェクトを TypeScript のインターフェイス プロパティに縮小する方法

Mary-Kate Olsen
リリース: 2024-11-01 01:55:27
オリジナル
747 人が閲覧しました

How to Reduce a JavaScript Object to Interface Properties in TypeScript?

JavaScript オブジェクトをインターフェイス プロパティに還元する

TypeScript では、インターフェイスはデータ構造の設計図として機能します。ただし、実行時はインターフェイスが空であるため、定義されたプロパティのみを含むようにオブジェクトを直接縮小することはできません。

実装

ただし、いくつかの回避策があります。メソッド:

クラスの使用

代わりにインターフェイスをクラスとして定義します:

class MyInterface {
  test: string = undefined;
}
ログイン後にコピー

次に、Lodash を使用して必要なプロパティを抽出します。

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
ログイン後にコピー

アセンブリ オペレータ

または、アセンブリ オペレータを使用することもできます。

let reduced = {...new MyInterface(), ...test};
ログイン後にコピー

これは、空の "MyInterface" オブジェクトをマージします。 "test" オブジェクトを使用して、重複するプロパティを上書きします。

このメソッドを使用する理由

このアプローチは、Angular の "toJson" を使用して REST サービスにデータを送信する場合に便利です。方法。 「newTest」プロパティはコンパイル中にアクセスできませんが、「toJson」によって変換されるため、REST サービスは無効なプロパティのために JSON を拒否します。オブジェクトをインターフェイス プロパティに減らすことで、予期されるデータのみが送信され、サービスとの適切な通信が確保されます。

以上がJavaScript オブジェクトを TypeScript のインターフェイス プロパティに縮小する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート