Typescript: Type af en funktion, der tager et funktionsargument - får "; forventet" fejl
Jeg har en klasse, der har en egenskab, som er en funktionstype, der tager en funktion som argument. TypeScript-kompilatoren giver en "; forventet"-fejl på den anden =>. Nogen idé om hvorfor? Koden er nedenfor.
class Foo{
public fn: ((string) => void) => void;
}
var foo = new Foo();
foo.fn = function(logger: (string) => void): void{
logger("bar");
};
var writeToConsole = function(str: string): void {
console.log(str);
}
foo.fn(writeToConsole);
Svar #1
Fordi den indre funktion har brug for et navn, og først derefter kan du angive dens type:
public fn: (inner: (string) => void) => void;
Selvfølgelig er inner vilkårlig, ændr det efter eget ønske. Se det fungere på Typescript-legeredskabet (bemærk: bruger forkortet url fordi det originale link indeholder parenteser, som ødelægger markdown, og jeg har ikke lyst til at escape dem alle)
