Как мне написать функцию TypeScript для объединения действий?

Один из вариантов - использовать Google Gson.

import java.util.ArrayList; import java.util.List; import com.google.gson.Gson;

class Project {
private int year = 1987;
private String name = "ROBOCOP-1";
private boolean active = false;
private List<String> list = new ArrayList<String>() {
  {
    add("PROTECT THE INNOCENT");
    add("UPHOLD THE LAW");
    add("SERVE THE PUBLIC TRUST");
    add("CLASSIFIED");
  }
};
}

public class GsonExample {
public static void main(String[] args) {
    Project obj = new Project();
    Gson gson = new Gson();
    String json = gson.toJson(obj);
    System.out.println(gson.toJson(obj));
}
}
1
задан JorgeAmVF 17 January 2019 в 01:50
поделиться

2 ответа

Используйте свободный интерфейс

class multipleActionClass
{    
  chooseIndex(index) {
      this.currentIndex=index;   
      return this;
  } 

  setValue(value) {
      console.log(`set value ${value} at index ${this.currentIndex}`);
      // this.index[this.currentIndex].setValue(value) ...
      return this;
  } 
}

let multipleActionObject = new multipleActionClass();

multipleActionObject.chooseIndex(1).setValue(2);

0
ответ дан Kamil Kiełczewski 17 January 2019 в 01:50
поделиться

Вы можете назначить chooseIndex свойству index экземпляра, а затем вернуть экземпляр, а затем setValue просмотреть индекс, который был присвоен:

[114 ]

class multipleActionObject {
  constructor(arr) {
    this.arr = arr;
  }
  chooseIndex(index) {
    this._index = index;
    return this;
  }
  setValue(value) {
    if (typeof this._index !== 'number') {
      throw new Error('No index to set value of');
    }
    this.arr[this._index] = value;
    return this;
  }
}
const instance = new multipleActionObject([0, 1, 2, 3]);
instance.chooseIndex(4).setValue(10);
console.log(instance.arr[4]);

Это называется «цепочкой методов», хотя здесь кажется немного странным отделять выбранный элемент от действия, выполняемого над этим объектом. [ 118]

0
ответ дан CertainPerformance 17 January 2019 в 01:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: