ポリモーリックメソッドJavascriptを作成するにはどうすればよいですか?

ヴァレリー・ルツェビッチ

私はいくつかのを作成しようとします

stepOneDataタイプのデータを取得するとstepOneDataを変更し、stepOneDataタイプのデータを取得するとstepTwoDataを変更するupdateStepDataメソッドを作成するにはどうすればよいですか?

  updateStepData(data: StepOneData | StepTwoData): void {
     Object.keys(data).map(key => {
       // if (data instanceof StepOneData) {
          this.stepOneData[key] = data[key];
       // } 

       // if (data instanceof StepTwoData) {
          this.stepTwoData[key] = data[key];
       // } 
     });
  }

instanceof演算子を使用してみましたが、ここでは機能しません。

Soroush

私はあなたのStep1Componentでこのメソッドを見つけました:

onFormChanges(): void {
    this.stepOneForm.valueChanges
      .subscribe((data: StepOneData) => {

        this.registrationService.updateStepData(data);
      });
}

このように変更します:

onFormChanges(): void {
    this.stepOneForm.valueChanges
      .subscribe((data: StepOneData) => {

        const stepOneData = new StepOneData();

        stepOneData.firstName = data.firstName;
        stepOneData.firstName = data.lastName;      

        this.registrationService.updateStepData(stepOneData);
      });
}

Step2Componentにも同じことをします

これで、コードに記述したとおりにinstanceofを使用できます。

   if (data instanceof StepOneData) {
    this.stepOneData[key] = data[key];
  } 

  if (data instanceof StepTwoData) {
     this.stepTwoData[key] = data[key];
  } 

=========================================

読み取り可能なコードを作成するには、StepOneDataクラスとStepTwoDataクラスにコンストラクターを追加して、次のようにプロパティを初期化します。

export class StepTwoData {

  constructor(public city:string,public state:string){}

}

およびコンポーネント内:

 onFormChanges(): void {
    this.stepTwoForm.valueChanges
      .subscribe((data: StepTwoData) => {

        const stepTwoData= new StepTwoData(data.city,data.state);    

        this.registrationService.updateStepData(stepTwoData);
      });
}

==========================

更新:

より良い設計のために、タイプごとに2つのメソッドを作成することをお勧めします。たとえば、「UpdateStepOneData」と「UpdateStepTwoData」。

これらのメソッドに共有ロジックがある場合は、「UpdateStepData」という名前のメソッドに配置します。

UpdateStepOneData(data:StepOneData){

       // Custom Code goes here

       UpdateStepData(...); // Shared Logic goes here

}

UpdateStepTwoData(data:StepTwoData){

       // Custom Code goes here

       UpdateStepData(...); // Shared Logic goes here

}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

スーパーメソッドにポリモーフィックな呼び出しを強制するにはどうすればよいですか?

分類Dev

Android MVP-モデルメソッドにアクセスするためにバックグラウンドサービスでモデル/リポジトリインスタンスを作成するにはどうすればよいですか?

分類Dev

リポジトリメソッドでJOOQクエリの一部を再利用/作成するにはどうすればよいですか?

分類Dev

モデルに複数のリモートメソッドを作成するにはどうすればよいですか?

分類Dev

C#でジェネリックメソッドのオーバーロードを作成するにはどうすればよいですか?

分類Dev

更新時にモデルからクリーンメソッドをトリガーするにはどうすればよいですか?

分類Dev

配列のサイズ変更メソッドでこのメモリリークを修正するにはどうすればよいですか?

分類Dev

非同期メソッドのジェネリック拡張メソッドを作成するにはどうすればよいですか?

分類Dev

冗長なコードを減らしてジェネリックメソッドを作成するにはどうすればよいですか?

分類Dev

ジェネリッククラスオブジェクトを作成するメソッドを作成するにはどうすればよいですか?

分類Dev

Scalaでリスト長メソッドを作成するにはどうすればよいですか?

分類Dev

クラス型を受け入れるジェネリックメソッドをモックするにはどうすればよいですか?

分類Dev

クラスからボタンを作成するときにクリックメソッドを確認するにはどうすればよいですか?

分類Dev

Spring Bootでサポートされていないリクエストメソッド「POST」を修正するにはどうすればよいですか?

分類Dev

ジェネリックファクトリメソッドをすばやく作成するにはどうすればよいですか?

分類Dev

メソッド参照のリストを作成するにはどうすればよいですか?

分類Dev

メソッド参照のリストを作成するにはどうすればよいですか?

分類Dev

反復可能な型によって制約されるジェネリックメソッドを作成するにはどうすればよいですか?

分類Dev

JavaScriptメソッドを他のバックボーンメソッドで使用できるようにするにはどうすればよいですか?

分類Dev

クラスと文字列を渡すジェネリックにメソッドを作成するにはどうすればよいですか?

分類Dev

カスタムモジュールからのORMメソッドのリンク解除を上書きするにはどうすればよいですか?

分類Dev

アセンブリ内のすべてのメソッドの名前をエクスポートするにはどうすればよいですか?

分類Dev

クリックを受け入れるJavaメソッドを作成するにはどうすればよいですか?

分類Dev

配列に要素を挿入するためのジェネリックメソッドを作成するにはどうすればよいですか?

分類Dev

List <Object>をObservableList <S>とMap <T、S>に変換するジェネリックメソッドを作成するにはどうすればよいですか?

分類Dev

キャメルのブループリントでエンドポイントをモックするにはどうすればよいですか?

分類Dev

ポリモーフィズムを使用して、メソッドが複数のクラスを受け入れることができるようにするにはどうすればよいですか?ただし、IBOutletsを使用しますか?

分類Dev

メソッドをGUIにリンクするにはどうすればよいですか?

分類Dev

linqクエリでメソッドを使用するにはどうすればよいですか?

Related 関連記事

  1. 1

    スーパーメソッドにポリモーフィックな呼び出しを強制するにはどうすればよいですか?

  2. 2

    Android MVP-モデルメソッドにアクセスするためにバックグラウンドサービスでモデル/リポジトリインスタンスを作成するにはどうすればよいですか?

  3. 3

    リポジトリメソッドでJOOQクエリの一部を再利用/作成するにはどうすればよいですか?

  4. 4

    モデルに複数のリモートメソッドを作成するにはどうすればよいですか?

  5. 5

    C#でジェネリックメソッドのオーバーロードを作成するにはどうすればよいですか?

  6. 6

    更新時にモデルからクリーンメソッドをトリガーするにはどうすればよいですか?

  7. 7

    配列のサイズ変更メソッドでこのメモリリークを修正するにはどうすればよいですか?

  8. 8

    非同期メソッドのジェネリック拡張メソッドを作成するにはどうすればよいですか?

  9. 9

    冗長なコードを減らしてジェネリックメソッドを作成するにはどうすればよいですか?

  10. 10

    ジェネリッククラスオブジェクトを作成するメソッドを作成するにはどうすればよいですか?

  11. 11

    Scalaでリスト長メソッドを作成するにはどうすればよいですか?

  12. 12

    クラス型を受け入れるジェネリックメソッドをモックするにはどうすればよいですか?

  13. 13

    クラスからボタンを作成するときにクリックメソッドを確認するにはどうすればよいですか?

  14. 14

    Spring Bootでサポートされていないリクエストメソッド「POST」を修正するにはどうすればよいですか?

  15. 15

    ジェネリックファクトリメソッドをすばやく作成するにはどうすればよいですか?

  16. 16

    メソッド参照のリストを作成するにはどうすればよいですか?

  17. 17

    メソッド参照のリストを作成するにはどうすればよいですか?

  18. 18

    反復可能な型によって制約されるジェネリックメソッドを作成するにはどうすればよいですか?

  19. 19

    JavaScriptメソッドを他のバックボーンメソッドで使用できるようにするにはどうすればよいですか?

  20. 20

    クラスと文字列を渡すジェネリックにメソッドを作成するにはどうすればよいですか?

  21. 21

    カスタムモジュールからのORMメソッドのリンク解除を上書きするにはどうすればよいですか?

  22. 22

    アセンブリ内のすべてのメソッドの名前をエクスポートするにはどうすればよいですか?

  23. 23

    クリックを受け入れるJavaメソッドを作成するにはどうすればよいですか?

  24. 24

    配列に要素を挿入するためのジェネリックメソッドを作成するにはどうすればよいですか?

  25. 25

    List <Object>をObservableList <S>とMap <T、S>に変換するジェネリックメソッドを作成するにはどうすればよいですか?

  26. 26

    キャメルのブループリントでエンドポイントをモックするにはどうすればよいですか?

  27. 27

    ポリモーフィズムを使用して、メソッドが複数のクラスを受け入れることができるようにするにはどうすればよいですか?ただし、IBOutletsを使用しますか?

  28. 28

    メソッドをGUIにリンクするにはどうすればよいですか?

  29. 29

    linqクエリでメソッドを使用するにはどうすればよいですか?

ホットタグ

アーカイブ