例子:
function a(...args: ???type of b() params???) {
b(...args)
}
Run Code Online (Sandbox Code Playgroud)
我想args成为 的b参数类型。
如果你想知道为什么我想要这个,那么它是为了代码可读性/封装。b是ed 函数,我不关心它在函数声明import层面的实现a
您可以在 3.0 元组中的剩余参数和展开表达式中执行此操作(现在在 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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |