tests/cases/compiler/optionalPropertiesSyntax.ts(4,5): error TS2386: Overload signatures must all be optional or required. tests/cases/compiler/optionalPropertiesSyntax.ts(11,7): error TS1005: ';' expected. tests/cases/compiler/optionalPropertiesSyntax.ts(11,8): error TS1131: Property or signature expected. tests/cases/compiler/optionalPropertiesSyntax.ts(12,5): error TS1131: Property or signature expected. tests/cases/compiler/optionalPropertiesSyntax.ts(18,11): error TS1005: ';' expected. tests/cases/compiler/optionalPropertiesSyntax.ts(18,12): error TS1131: Property or signature expected. tests/cases/compiler/optionalPropertiesSyntax.ts(24,5): error TS2300: Duplicate identifier 'prop'. tests/cases/compiler/optionalPropertiesSyntax.ts(25,5): error TS2300: Duplicate identifier 'prop'. tests/cases/compiler/optionalPropertiesSyntax.ts(32,5): error TS2375: Duplicate number index signature. tests/cases/compiler/optionalPropertiesSyntax.ts(32,18): error TS1005: ';' expected. tests/cases/compiler/optionalPropertiesSyntax.ts(32,19): error TS1131: Property or signature expected. tests/cases/compiler/optionalPropertiesSyntax.ts(33,5): error TS1131: Property or signature expected. tests/cases/compiler/optionalPropertiesSyntax.ts(33,7): error TS2375: Duplicate number index signature. tests/cases/compiler/optionalPropertiesSyntax.ts(34,5): error TS2375: Duplicate number index signature. ==== tests/cases/compiler/optionalPropertiesSyntax.ts (14 errors) ==== interface fnSigs { //functions signatures can be optional fn(): void; fn?(): void; //err ~~ !!! error TS2386: Overload signatures must all be optional or required. fn2?(): void; } interface callSig { //Call signatures can't be optional (): any; ()?: any; //err ~ !!! error TS1005: ';' expected. ~ !!! error TS1131: Property or signature expected. ?(): any; //err ~ !!! error TS1131: Property or signature expected. } interface constructSig { //Construct signatures can't be optional new (): any; new ()?: any; //err ~ !!! error TS1005: ';' expected. ~ !!! error TS1131: Property or signature expected. new ?(): any; //err } interface propertySig { //Property signatures can be optional prop: any; ~~~~ !!! error TS2300: Duplicate identifier 'prop'. prop?: any; ~~~~ !!! error TS2300: Duplicate identifier 'prop'. prop2?: any; } interface indexSig { //Index signatures can't be optional [idx: number]: any; [idx: number]?: any; //err ~~~~~~~~~~~~~ !!! error TS2375: Duplicate number index signature. ~ !!! error TS1005: ';' expected. ~ !!! error TS1131: Property or signature expected. ? [idx: number]: any; //err ~ !!! error TS1131: Property or signature expected. ~~~~~~~~~~~~~~~~~~~ !!! error TS2375: Duplicate number index signature. [idx?: number]: any; //err ~~~~~~~~~~~~~~~~~~~~ !!! error TS2375: Duplicate number index signature. }