其余元素必须在元组类型的最后

问题描述

cb 编写类型时:

const fn1 = (
  cb: (...args: [...args: any[],fn2: () => string,fn3: () => string]) => any,...args: any[]
) => {
  const fn2 = () => 'fn2'
  const fn3 = () => 'fn3'
  cb(...args,fn2,fn3)
}

运行tsc,抛出错误

A rest element must be last in a tuple type.

解决方法

事实证明我一直在使用全局 tsc,也就是 ^3.2.9,难怪我的行为与其他人不同。当我切换到本地tsc时,即^4.2.3,代码编译成功。