//// [genericCallWithObjectTypeArgsAndInitializers.ts] // Generic typed parameters with initializers function foo(x: T = null) { return x; } // ok function foo2(x: T = undefined) { return x; } // ok function foo3(x: T = 1) { } // error function foo4(x: T, y: U = x) { } // error function foo5(x: U, y: T = x) { } // ok function foo6(x: T, y: U, z: V = y) { } // error function foo7(x: V, y: U = x) { } // should be ok //// [genericCallWithObjectTypeArgsAndInitializers.js] // Generic typed parameters with initializers function foo(x) { if (x === void 0) { x = null; } return x; } // ok function foo2(x) { if (x === void 0) { x = undefined; } return x; } // ok function foo3(x) { if (x === void 0) { x = 1; } } // error function foo4(x, y) { if (y === void 0) { y = x; } } // error function foo5(x, y) { if (y === void 0) { y = x; } } // ok function foo6(x, y, z) { if (z === void 0) { z = y; } } // error function foo7(x, y) { if (y === void 0) { y = x; } } // should be ok