Skip to content

const的使用方法

当推断一个对象的类型时,TypeScript 倾向于选择更通用的类型,比如下面示例

ts
declare function getNames<T extends string[]>(args: T): T
const names = getNames(['a', 'b', 'c']) // string[]

如果需要推断更具体的类型,以前的做法是在每次传入参数时增加as const

ts
declare function getNames<T extends string[]>(args: T): T
const names = getNames(['a', 'b', 'c'] as const) // ["a", "b", "c"]

而现在则是直接给泛型添加const,效果和上面一样

ts
declare function getNames<const T extends string[]>(args: T): T
const names = getNames(['a', 'b', 'c']) // ["a", "b", "c"]

如果需要实现数组类型不可变,可以在extends后加入readonly