function restValid(a: i32, ...b: i32[]): void {}
function restParameterMustBeLast(...a: i32[], b: i32): void {}

function optionalValid(a: i32, b?: i32): void {}
function optionalCannotPrecedeRequired(a?: i32, b: i32): void {}
function optionalWithInitializerCannotPrecedeRequired(a: i32 = 1, b: i32): void {}