//// [optionalPropertiesSyntax.ts] interface fnSigs { //functions signatures can be optional fn(): void; fn?(): void; //err fn2?(): void; } interface callSig { //Call signatures can't be optional (): any; ()?: any; //err ?(): any; //err } interface constructSig { //Construct signatures can't be optional new (): any; new ()?: any; //err new ?(): any; //err } interface propertySig { //Property signatures can be optional prop: any; prop?: any; prop2?: any; } interface indexSig { //Index signatures can't be optional [idx: number]: any; [idx: number]?: any; //err ? [idx: number]: any; //err [idx?: number]: any; //err } //// [optionalPropertiesSyntax.js]