rxjs - NGRX Eylemlerini TypeScript'te Fonksiyonlara Parametre Olarak Nasıl Geçerim?


Angular 7 uygulamamda biraz büyük bir if else koşulum var; burada State manager ve rxjs kullanıyorum ve kodu biraz daha okunabilir hale getirmek istiyorum. Farklı koşullarda farklı aksiyonları dispatch etmem gerekiyor. If else kod bloğunu bazı kısımları yeniden kullanılabilir bir fonksiyona taşıyarak azaltmaya karar verdim ve bu fonksiyonlara NGRX aksiyonlarını parametre olarak geçmem gerekiyor. Ancak TypeScript şu hatayı veriyor: 'xxx' parametresi varsayılan olarak 'any' türüne sahip.

Soru şu - işlemler için hangi türü tanımlamalıyım? Örneğin setSomeDataAction: Action - çalışmıyor

Kod şimdi:

if (mobile) {         
  if (newVisitor) {
      this.store.dispatch(SetMobileForNewVisitor(payload));
  } else {
      this.store.dispatch(SetMobileForExistingVisitor(payload));
  }
} else {
  if (newVisitor) {
     this.store.dispatch(SetNotMobileForNewVisitor(payload));
  } else {
     this.store.dispatch(SetNotMobileForExistingVisitor(payload));
  }
}

Typescript Hatası fırlatan kod

mobile ?
this.dispatchRemoveOne(SetMobileForNewVisitor, SetMobileForExistingVisitor, payload) :
this.dispatchRemoveOne(SetNotMobileForNewVisitor,SetNotMobileForExistingVisitor, payload);

private dispatchRemoveOne(newVisitorAction, existingVisitorAction, payload) {
    newVisitor
      ? this.store.dispatch(newVisitorAction(payload))
      : this.store.dispatch(existingVisitorAction(payload));
  }

Şu gibi bir şey deniyordum:

private dispatchRemoveOne(newVisitorAction: Action, existingVisitorAction: Action, payload: Payload[]) {
    newVisitor
      ? this.store.dispatch(newVisitorAction(payload))
      : this.store.dispatch(existingVisitorAction(payload));
  }