angular - Typescript'te return ifadesi dinamik olarak nasıl oluşturulur?


Bir değişkene dinamik olarak API'den alınan değerlerle bir dönüş değeri atamam gerekiyor.

Fonksiyon sabit değerlerle şöyle görünüyor:

this.markDisabled = (date: NgbDate) => {
  return (this.calendar.getWeekday(date) !== 5 && this.calendar.getWeekday(date) !== 1);
};

Ama aslında !== 5 ve !== 1 dinamik olarak ayarlanmalıdır ve yalnızca bir parametre veya yediye kadar parametre olabilir.

Yani eğer API’im 3,5,6 gibi değerler dönerse, fonksiyonu aşağıdaki gibi oluşturmam gerekiyor:

this.markDisabled = (date: NgbDate) => {
  return (this.calendar.getWeekday(date) !== 3 && this.calendar.getWeekday(date) !== 5 && this.calendar.getWeekday(date) !== 6);
};

Ama ona dinamik olarak nasıl ulaşabilirim?

Sayı değerlerini ayarlayacağım fonksiyon, aşağıdaki haritadan alınmıştır:

dayArray.map((g) => {
  console.log(dayIndiciesByDayName[g.toLowerCase()] + 1); // here i get for each element in my array get from API the number to be set in return
});

Cevap #1

Yani, bu işe yarar mı? Yöntemi oluşturan bir yardımcı fonksiyon kullanarak?

someApiCall(): void {
  const apiReturn = [ 3, 5, 6 ];

  this.markDisabled = this.markDisableFunction(apiReturn);
}

markDisableFunction(includeDays: number[]): (date: NgbDate) => boolean {
  return (date: NgbDate) => !includeDays.includes(this.calendar.getWeekday(date))
}

İlgili makaleler