核心结论
const 类型参数与普通泛型参数的核心差异是字面量推断偏好。普通泛型参数可能把调用点的对象属性、数组元素或字符串值拓宽为更通用的类型;const 类型参数会在满足约束的前提下,优先保留字符串和数字字面量、具体对象属性以及只读元组信息。它特别适合路由表、权限表、状态机和配置构造器等需要从输入值继续计算精确类型的接口。它不会冻结运行时对象,不等同于变量声明中的 const,也不能替代约束、不可变数据结构或运行时校验。
底层机制
考虑两个签名:
function normal<T extends readonly string[]>(value: T): T {
return