在 TypeScript 中用括号代替键的对象是什么意思?

What does object with parentheses in place of keys in TypeScript mean?

在 TypeScript 中用括号代替键的对象是什么意思?

例如这里

foo(success: { (): void; (): void; }) {}

我不明白 success 参数代表什么。

{ (): void; (): void; } 只是一个 callable type. The second (): void is a function overload。尽管在这种情况下它什么都不做。用不那么神奇的方式可以写成:

interface Success {
  (): void
  (): void
}

function foo(success: Success) {}

这基本上等同于 foo(success: () => void) {}