==== tests/cases/conformance/types/objectTypeLiteral/callSignatures/restParametersOfNonArrayTypes.ts (17 errors) ==== // Rest parameters must be an array type if they have a type annotation, so all these are errors function foo(...x: string) { } ~~~~~~~~~~~~ !!! A rest parameter must be of an array type. var f = function foo(...x: number) { } ~~~~~~~~~~~~ !!! A rest parameter must be of an array type. var f2 = (...x: Date, ...y: boolean) => { } ~ !!! A rest parameter must be last in a parameter list. ~~~~~~~~~~ !!! A rest parameter must be of an array type. ~~~~~~~~~~~~~ !!! A rest parameter must be of an array type. class C { foo(...x: C) { } ~~~~~~~ !!! A rest parameter must be of an array type. } interface I { (...x: string); ~~~~~~~~~~~~ !!! A rest parameter must be of an array type. foo(...x: number, ...y: number); ~ !!! A rest parameter must be last in a parameter list. ~~~~~~~~~~~~ !!! A rest parameter must be of an array type. ~~~~~~~~~~~~ !!! A rest parameter must be of an array type. } var a: { (...x: string); ~~~~~~~~~~~~ !!! A rest parameter must be of an array type. foo(...x: string); ~~~~~~~~~~~~ !!! A rest parameter must be of an array type. } var b = { foo(...x: string) { }, ~~~~~~~~~~~~ !!! A rest parameter must be of an array type. a: function foo(...x: number, ...y: Date) { }, ~ !!! A rest parameter must be last in a parameter list. ~~~~~~~~~~~~ !!! A rest parameter must be of an array type. ~~~~~~~~~~ !!! A rest parameter must be of an array type. b: (...x: string) => { } ~~~~~~~~~~~~ !!! A rest parameter must be of an array type. }