var a: { numVal: number }; var a: { numVal: number }; var a: { numVal: number, [indexer: string]: number, }; var a: ?{ numVal: number }; var a: { numVal: number, strVal: string, }; var a: { subObj: { strVal: string } }; var a: { subObj: ?{ strVal: string } }; var a: { param1: number, param2: string, }; var a: { param1: number, param2?: string, }; var a: { [a: number]: string, [b: number]: string, };