剩余元素必须位于元组类型的最后一个

Wen*_* Du 7 types typescript type-definition

当写类型为cb

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

运行tsc,抛出错误:

A rest element must be last in a tuple type.
Run Code Online (Sandbox Code Playgroud)

Wen*_* Du 13

原来我一直都在用全局tsc,难怪v3.2.9我的行为和别人不一样。当我切换到本地tscv4.2.3,代码编译成功。