TypeScript 高级类型技巧与应用
1. 函数签名元素拆分
在 TypeScript 中,能够在类型系统中访问元组的长度是一项隐藏的强大功能。它不仅能实现很多有趣的操作,比如在类型系统中实现计算器,还能帮助我们处理函数签名相关的问题。
当我们在函数内部获取函数的参数类型和返回类型时,有时也希望在函数外部使用这些类型。这时可以使用内置的 Parameters<F> 和 ReturnType<F> 辅助类型。
以下是 defer 函数的示例:
function defer<Par extends unknown[], Ret>(
fn: (...par: Par) => Ret,
...args: Par
): () => Ret {
return () => fn(...args);
}
const log = defer(console.log, "Hello, world!");
log();
使用 Parameters<F> 和 ReturnType<F> 后, defer 函数可以改写为:
type Fn = (...args: any[]) => any;
function def
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



