示例:
function a(...args: ???type of b() params???) {
b(...args)
}
我希望args
是b
的参数类型。
如果您想知道为什么要这样做,则用于代码的可读性/封装性。 b
是import
的函数,我不在乎它在函数a
声明级别的实现
答案 0 :(得分:4)
您可以在3.0 Tuples in rest parameters and spread expressions中执行此操作(目前应在RC中推出)
type ArgumentType<T> = T extends (...args: infer U) => any ? U : never;
function a(...args: ArgumentType<typeof b>) {
function b(...args: any[]) {
}
}
// More complex examples
function a2(...args: ArgumentType<typeof b>) {
function b(name: string, value: number) {
}
}
a2("", 1);
答案 1 :(得分:1)