=== tests/cases/conformance/es6/computedProperties/computedPropertyNames48_ES5.ts === declare function extractIndexer(p: { [n: number]: T }): T; >extractIndexer : (p: { [n: number]: T; }) => T >T : T >p : { [n: number]: T; } >n : number >T : T >T : T enum E { x } >E : E >x : E var a: any; >a : any extractIndexer({ >extractIndexer({ [a]: ""}) : string >extractIndexer : (p: { [n: number]: T; }) => T >{ [a]: ""} : { [x: number]: string; } [a]: "" >a : any >"" : string }); // Should return string extractIndexer({ >extractIndexer({ [E.x]: ""}) : string >extractIndexer : (p: { [n: number]: T; }) => T >{ [E.x]: ""} : { [x: number]: string; } [E.x]: "" >E.x : E >E : typeof E >x : E >"" : string }); // Should return string extractIndexer({ >extractIndexer({ ["" || 0]: ""}) : any >extractIndexer : (p: { [n: number]: T; }) => T >{ ["" || 0]: ""} : { [x: number]: undefined; } ["" || 0]: "" >"" || 0 : string | number >"" : string >0 : number >"" : string }); // Should return any (widened form of undefined)