1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
=== tests/cases/conformance/es6/computedProperties/computedPropertyNames48_ES5.ts ===
declare function extractIndexer<T>(p: { [n: number]: T }): T;
>extractIndexer : <T>(p: { [n: number]: T; }) => T
>p : { [n: number]: T; }
>n : number
enum E { x }
>E : E
>x : E.x
var a: any;
>a : any
extractIndexer({
>extractIndexer({ [a]: ""}) : string
>extractIndexer : <T>(p: { [n: number]: T; }) => T
>{ [a]: ""} : { [x: number]: string; }
[a]: ""
>[a] : string
>a : any
>"" : ""
}); // Should return string
extractIndexer({
>extractIndexer({ [E.x]: ""}) : string
>extractIndexer : <T>(p: { [n: number]: T; }) => T
>{ [E.x]: ""} : { [E.x]: string; }
[E.x]: ""
>[E.x] : string
>E.x : E
>E : typeof E
>x : E
>"" : ""
}); // Should return string
extractIndexer({
>extractIndexer({ ["" || 0]: ""}) : string
>extractIndexer : <T>(p: { [n: number]: T; }) => T
>{ ["" || 0]: ""} : { ["" || 0]: string; }
["" || 0]: ""
>["" || 0] : string
>"" || 0 : 0
>"" : ""
>0 : 0
>"" : ""
}); // Should return any (widened form of undefined)
|