ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript オブジェクトを TypeScript のインターフェイス プロパティに縮小する方法

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 01:55:27797ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。