Typescript 指定使用参数时要读取的重载

Typescript 指定使用参数时要读取的重载,typescript,Typescript,我试图从重载函数中获取参数 interface FuncContainer { someFunc(name: string, value: number): number; } 这里,我有一个接口,它有一个函数someFunc。我真正感兴趣的是值的类型——这非常简单: type Value = Parameters<FuncContainer["someFunc"]>[1]; // Value is type number 我尝试利用扩展,但没有效果:

我试图从重载函数中获取
参数

interface FuncContainer {
    someFunc(name: string, value: number): number;
}
这里,我有一个接口,它有一个函数
someFunc
。我真正感兴趣的是
值的类型
——这非常简单:

type Value = Parameters<FuncContainer["someFunc"]>[1]; // Value is type number
我尝试利用
扩展
,但没有效果:

type Parameter2<F extends (name: string, value: any) => any> = Parameters<F>[1];
type Value = Parameter2<FuncContainer["someFunc"]>; // undefined
类型参数2任意>=参数[1];
类型值=参数2;//未定义

在使用
参数时,有没有办法指定使用哪个重载(按索引、按类型、任何内容)?

,因为我认为最后一个重载是实现。这就是为什么需要最后一个。重载应按从最特定到最不特定的顺序排列。从最不特定的重载(实现)中,您可以检索所需的任何参数类型。@Бцаааааааааааааааа。我不相信重载中有任何其他排序规则。另外:这里,我的重载只是在一个接口中,没有实现。它选择最不特定的重载的想法很有趣-我通过翻转
someFunc
的两个版本来测试它,但它仍然选择了两个版本中较低的一个(这使得
type Value=…
等于
number
。函数的实现不是其调用签名的一部分,因此@khааааааааааааааааааааа107调用它时是正确的。但最不具体的调用签名与实现签名不同。此问题与的问题重复,但我无法将其标记为相同的问题,因为它没有向上投票的答案
type Parameter2<F extends (name: string, value: any) => any> = Parameters<F>[1];
type Value = Parameter2<FuncContainer["someFunc"]>; // undefined