typescript - Record fonksiyon argümanı birleşim türü olarak, birleşim değerlerine atanamaz
Amaç, anahtarları ve fonksiyon değerlerini kısıtlamak için bir haritalayıcı için Record türü tanımını bildirmektir. Bu fonksiyonların argümanlarının farklı davranışları vardır, bu nedenle bir birleşim türü kullanılarak tanımlanmıştır.
PushNotificationPayloadVideoComment, PushNotificationPayload birleşim tipinin bir parçasıdır, ancak TS derleyicisi bunun birleşimine atanabilir olmadığını tespit eder
TypeScript sürümü: 4.3.2
TS Playground'da tam kod parçacığı için buraya tıklayın
Cevap #1
unknown kullanmak, atanan fonksiyonun herhangi bir parametre türüyle başa çıkabilecek kapasitede olması gerektiği anlamına gelir ve yalnızca belirli bir türle başa çıkabilen fonksiyonları kullanıyorsunuz.
Her geri çağırmayı uygun parametre türüne eşlemek için özel bir haritalanmış tür kullanabilirsiniz:
type Mapper = {
[P in PushNotificationPayload as P['category']]?: (payload: P) => void
}
Oyun Alanı Bağlantısı
