TS2349: Cannot invoke an expression whose type lacks a call signature

TS2349 hiba TypeScript: függvénytípust kell használni, vagy típusdefiníciót módosítani.

Cannot invoke call signature TypeScript

Hibaüzenet

TS2349: Cannot invoke an expression whose type lacks a call signature

Hibás kód

let fn: number;
fn();

Javított kód

let fn: () => void;
fn = () => {};
fn();

Magyarázat

 

Cannot invoke an expression whose type lacks a call signature hiba akkor fordul elő, amikor egy változót úgy deklarálsz, hogy nem függvénytípust kap, de később meghívod. A TypeScript nem engedi meghívni, mert nincs ismert call signature. A megoldás, hogy a változó típusát `() => void` vagy hasonló függvénytípusra állítod, és hozzárendeled a függvényt. Így a fordító tudja, hogy hívható.’, ‘

További információ: TypeScript Functions