TypeScript/tests/baselines/reference/computedPropertyNames48_ES6.types
2015-04-15 16:44:20 -07:00

53 lines
1.1 KiB
Plaintext

=== tests/cases/conformance/es6/computedProperties/computedPropertyNames48_ES6.ts ===
declare function extractIndexer<T>(p: { [n: number]: T }): T;
>extractIndexer : <T>(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 : <T>(p: { [n: number]: T; }) => T
>{ [a]: ""} : { [x: number]: string; }
[a]: ""
>a : any
>"" : string
}); // Should return string
extractIndexer({
>extractIndexer({ [E.x]: ""}) : string
>extractIndexer : <T>(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 : <T>(p: { [n: number]: T; }) => T
>{ ["" || 0]: ""} : { [x: number]: undefined; }
["" || 0]: ""
>"" || 0 : string | number
>"" : string
>0 : number
>"" : string
}); // Should return any (widened form of undefined)