//// [genericFunctionsWithOptionalParameters1.ts] interface Utils { fold(c?: Array, folder?: (s: S, t: T) => T, init?: S): T; } var utils: Utils; utils.fold(); // no error utils.fold(null); // no error utils.fold(null, null); // no error utils.fold(null, null, null); // no error //// [genericFunctionsWithOptionalParameters1.js] var utils; utils.fold(); utils.fold(null); utils.fold(null, null); utils.fold(null, null, null);