TS 5.0 加了 const 泛型参数,之前要靠 as const 才能保留的字面量类型,现在调用时自动收窄。
function group<T extends string>(items: T[]) { return items; }
const a = group(["a", "b"]);
const b = group<const T extends string>(["a", "b"]); // ("a" | "b")[]
写工具函数时终于不用强制要求调用方写 as const 了,对 API 设计友好很多。
唯一不爽的是调用点语法有点丑,可读性一般。
大家有用到这个特性吗?