Array[0]
type First<T extends any[]> = T extends [] ? never : T[0]
type First<T extends any[]> = T['length'] extends 0 ? never : T[0]
type First<T extends any[]> = T extends [infer A, ...infer rest] ? A : never
type First<T extends any[]> = T[number] extends never ? never : T[0]
type First<T extends any[]> = '0' extends keyof T ? T[0] : neverwhy doesn’t this work
T extends readonly Array<unknown>but this works
T extends readonly unknown[]this also works
T extends Readonly<Array<unknown>>Are they not all the same thing?
readonlytype modifier is only permitted on array and tuple literal types.readonly类型修饰符仅允许用于 array 或 tuple 字面量类型。
unknown[] 是一个具体的字面量类型可以使用 readonly 修饰,Array<> 表示使用 Array 构造函数构造的数组类型。