==== tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersWithArrayTypeAnnotations.ts (6 errors) ==== // Rest parameters must be an array type if they have a type annotation, errors only for the functions with 2 rest params function foo(...x: number[]) { } var f = function foo(...x: number[]) { } var f2 = (...x: number[], ...y: number[]) => { } ~ !!! A rest parameter must be last in a parameter list. class C { foo(...x: number[]) { } } interface I { (...x: number[]); foo(...x: number[], ...y: number[]); ~ !!! A rest parameter must be last in a parameter list. } var a: { (...x: number[]); foo(...x: number[]); } var b = { foo(...x: number[]) { }, a: function foo(...x: number[], ...y: number[]) { }, ~ !!! A rest parameter must be last in a parameter list. b: (...x: number[]) => { } } function foo2(...x: Array) { } var f3 = function foo(...x: Array) { } var f4 = (...x: Array, ...y: Array) => { } ~ !!! A rest parameter must be last in a parameter list. class C2 { foo(...x: Array) { } } interface I2 { (...x: Array); foo(...x: Array, ...y: Array); ~ !!! A rest parameter must be last in a parameter list. } var a2: { (...x: Array); foo(...x: Array); } var b2 = { foo(...x: Array) { }, a: function foo(...x: Array, ...y: Array) { }, ~ !!! A rest parameter must be last in a parameter list. b: (...x: Array) => { } }