/
noImplicitAnyStringIndexerOnObject.types
72 lines (60 loc) · 1.81 KB
/
noImplicitAnyStringIndexerOnObject.types
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
=== tests/cases/compiler/noImplicitAnyStringIndexerOnObject.ts ===
var a = {}["hello"];
>a : any
>{}["hello"] : any
>{} : {}
>"hello" : "hello"
var b: string = { '': 'foo' }[''];
>b : string
>{ '': 'foo' }[''] : string
>{ '': 'foo' } : { '': string; }
>'' : string
>'foo' : "foo"
>'' : ""
// Should give suggestion 'c.get'
var c = {
>c : { get: (key: string) => string; }
>{ get: (key: string) => 'foobar'} : { get: (key: string) => string; }
get: (key: string) => 'foobar'
>get : (key: string) => string
>(key: string) => 'foobar' : (key: string) => string
>key : string
>'foobar' : "foobar"
};
c['hello'];
>c['hello'] : any
>c : { get: (key: string) => string; }
>'hello' : "hello"
// Should give suggestion 'd.set'
var d = {
>d : { set: (key: string) => string; }
>{ set: (key: string) => 'foobar'} : { set: (key: string) => string; }
set: (key: string) => 'foobar'
>set : (key: string) => string
>(key: string) => 'foobar' : (key: string) => string
>key : string
>'foobar' : "foobar"
};
d['hello'];
>d['hello'] : any
>d : { set: (key: string) => string; }
>'hello' : "hello"
// Should give suggestion 'e.get or e.set'
var e = {
>e : { set: (key: string) => string; get: (key: string) => string; }
>{ set: (key: string) => 'foobar', get: (key: string) => 'foobar'} : { set: (key: string) => string; get: (key: string) => string; }
set: (key: string) => 'foobar',
>set : (key: string) => string
>(key: string) => 'foobar' : (key: string) => string
>key : string
>'foobar' : "foobar"
get: (key: string) => 'foobar'
>get : (key: string) => string
>(key: string) => 'foobar' : (key: string) => string
>key : string
>'foobar' : "foobar"
};
e['hello'];
>e['hello'] : any
>e : { set: (key: string) => string; get: (key: string) => string; }
>'hello' : "hello"