What does object with parentheses in place of keys in TypeScript mean?
E.g. here
foo(success: { (): void; (): void; }) {}
I can not understand what does the success
parameter represent.
{ (): void; (): void; }
is just a callable type. The second (): void
is a function overload. Though in this case it does nothing. In less magical way it could be written as:
interface Success {
(): void
(): void
}
function foo(success: Success) {}
This is mostly equivalent to foo(success: () => void) {}
.