Как группировать переменные? - PullRequest
1 голос
/ 07 мая 2020

Как сгруппировать переменные:

export let findbyc$: Observable<Object>;
export let findbyi$: Observable<Object>;
export let findbyo$: Observable<Object>;
export let findbyob$: Observable<Object>;

Мне нужно сгруппировать их как:

const ChildObservers {
    export let findbyc$: Observable<Object>;
    export let findbyi$: Observable<Object>;
    export let findbyo$: Observable<Object>;
    export let findbyob$: Observable<Object>;
}

Затем где-то в приложении я хочу использовать это как: ChildObservers.findbyc$

Ответы [ 2 ]

1 голос
/ 07 мая 2020
export class ChildObservers {
  public constructor(private readonly httpClient: HttpClient){}

  public findbyc$ = (): Observable<Object> => {
    return this.httpClient.get();
  };

  public findbyi$ = (): Observable<Object> => {
    return this.httpClient.get();
  };

  public findbyo$ = (): Observable<Object> => {
    return this.httpClient.get();
  };

  public findbyob$ = (): Observable<Object> => {
    return this.httpClient.get();
  };
}

// Example for calling APIs
class MyComponent {
  public constructor(private readonly childObservers: ChildObservers){}

  public myFunction(){
    this.childObservers.findbyc$.subscribe(result => {
      console.log(result);
    });
  }
}
0 голосов
/ 07 мая 2020

Я думаю, что вы хотите определить набор свойств, сгруппированных, но не инициализированных.
Вы должны определить интерфейс и экспортировать переменную этого типа.

interface ChildObservers {
    findbyc$?: Observable<Object>;
    findbyi$?: Observable<Object>;
    findbyo$?: Observable<Object>;
    findbyob$?: Observable<Object>;
}

export const observers: ChildObservers = { };

Затем вы можете инициализируйте эти свойства всякий раз, когда вам нужно.

observers.findbyob$ = this.httpClient.get();

Более того, я предлагаю вам определить этот интерфейс generi c в соответствии с аргументом generi c из Observable<T>

interface ChildObservers<TResult> {
    findbyc$?: Observable<TResult>;
    findbyi$?: Observable<TResult>;
    findbyo$?: Observable<TResult>;
    findbyob$?: Observable<TResult>;
}

export const obsersers: ChildObservers<Object> = { };

И правильно его инициализировать

obsersers.findbyc$ = this.http.get<Object>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...