可变元组如何保留函数参数的位置、可选性与只读信息
简答题中等407 次浏览
参考答案与解析
# 核心结论
可变元组用于描述“长度、顺序和位置都具有语义”的序列,特别适合函数参数、高阶函数、事件参数与柯里化工具。设计此类类型时,应把参数列表作为一个完整元组进行推断,而不是退化成 unknown[] 或 any[]。泛型约束通常写成 readonly unknown[],这样既能接受普通元组,也能接受由 as const 等方式得到的只读元组;随后通过元组展开、条件类型和 infer 提取或组合各个部分。
function callWithPrefix<P extends readonly unknown[], R>(
fn: (...args: P) => R,
...args
