TypeScript 从函数接口中选择调用签名

ato*_*iks 6 typescript

有一个带有静态的函数接口:

interface MyFunction {
  (value: string): string;
  a: string;
  b: string;
}
Run Code Online (Sandbox Code Playgroud)

如何Pick仅调用签名(忽略ab)?

Art*_*hko 6

您无法选择调用签名,因为它不是您接口的属性。
您可以执行以下操作:

interface MyFunction {
    (value: string): string;
    a: string;
    b: string;
}

type Callable<T> = T extends (...args: any[]) => any ? (...args: Parameters<T>) => ReturnType<T> : never;

type MyFunctionCallSignature = Callable<MyFunction>;
Run Code Online (Sandbox Code Playgroud)