TypeScript: Fonksiyon olarak nesne anahtarı
Mantıklı sebeplerden dolayı, bir nesnede anahtar olarak fonksiyonları olan bir nesneye sahip olmam gerekiyor, örneğin:
function a() {}
function b() {}
const obj = {
[a]: b
}
Bunun nedeni, a fonksiyonunun değerlerini b fonksiyonuna eşlemek ve eşlemeleri tekrar hatırlayıp kaldırabilmektir.
Şimdi bunun için TypeScript'te nasıl tip tanımları yazacağımı merak ediyorum. Eğer yaparsam
type MapFunctions = { [key: Function]: Function };
Hata alacağım
An index signature parameter type must be 'string' or 'number'.ts(1023)
Ama bunun için bir türü nasıl yazardım?
Cevap #1
Bir nesne bir işlev referansını anahtar olarak alamaz, ancak bir işlevi anahtar olarak alabilen bir Map kullanabilirsiniz
function a() {}
function b() {}
const map = new Map<() => void, () => void>();
map.set(a, b);
map.get(a)();
