为什么数组类型会变成元组?

Why do array type become tuples?

我的打字稿有问题

function watches<T extends unknown[]>(
  sources: [...T],
  cb: (value: T) => any,
){

}

watches([{a:1},'1'],(b)=>{})  // b -> [{a: number}, string]

这正是我想要的,但为什么呢?

为什么 (value: T) => any 值是元组?

觉得不可思议

认为我理解你的问题。

(value: T) => any 这不是元组。

这是一个匿名函数。

类型中的括号与元组周围的括号不同。

这就像定义一个函数...

function myFunction(value: T) => any

这个函数的类型是...

(value: T) => any