Ich versuche, einen kleinen Cache-Wrapper in Typoskript (vereinfachte Pseudo Demo-Code) zu schreiben:Wie fügen Sie Typings für einen Funktionswrapper in TypeScript hinzu?
const cache = {};
export function cachify<T, V>(name:string, getFunction: (i:V)=>Promise<T>): (i:V) => Promise<T> {
return function() {
return cache[name] || getFunction.apply(this,arguments)
}
})
Dies funktioniert gut, wenn meine Funktion zum Beispiel nur ein Argument hat
function isNameFancy(name:string) {
return Promise.resolve(true)
}
const isNameFancyWithCache = cachify(isNameFancy)
jedoch als i i:V
diese nur gültig für ein Argument angegeben.
Wenn ich eine zweite Funktion z. isPersonFancy
es wird nicht funktionieren:
function isPersonFancy(personAge: number, personName: string) {
return Promise.resolve(true)
}
const isPersonFancyWithCache = cachify(isPersonFancy)
Wie muss ich meine cachify Funktionstypen ändern, so dass es für beide Fälle funktioniert?