File: noImplicitAnyIndexing.js

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (81 lines) | stat: -rw-r--r-- 1,918 bytes parent folder | download | duplicates (5)
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
73
74
75
76
77
78
79
80
81
//// [noImplicitAnyIndexing.ts]
enum MyEmusEnum {
    emu
}

// Should be okay; should be a string.
var strRepresentation1 = MyEmusEnum[0]

// Should be okay; should be a string.
var strRepresentation2 = MyEmusEnum[MyEmusEnum.emu]

// Should be implicit 'any' ; property access fails, no string indexer.
var strRepresentation3 = MyEmusEnum["monehh"];

// Should be okay; should be a MyEmusEnum
var strRepresentation4 = MyEmusEnum["emu"];


// Should report an implicit 'any'.
var x = {}["hi"];

// Should report an implicit 'any'.
var y = {}[10];


var hi: any = "hi";

var emptyObj = {};

// Should report an implicit 'any'.
var z1 = emptyObj[hi];
var z2 = (<any>emptyObj)[hi];

interface MyMap<T> {
    [key: string]: T;
}

var m: MyMap<number> = {
    "0": 0,
    "1": 1,
    "2": 2,
    "Okay that's enough for today.": NaN
};

var mResult1 = m[MyEmusEnum.emu];
var mResult2 = m[MyEmusEnum[MyEmusEnum.emu]];
var mResult3 = m[hi];



//// [noImplicitAnyIndexing.js]
var MyEmusEnum;
(function (MyEmusEnum) {
    MyEmusEnum[MyEmusEnum["emu"] = 0] = "emu";
})(MyEmusEnum || (MyEmusEnum = {}));
// Should be okay; should be a string.
var strRepresentation1 = MyEmusEnum[0];
// Should be okay; should be a string.
var strRepresentation2 = MyEmusEnum[MyEmusEnum.emu];
// Should be implicit 'any' ; property access fails, no string indexer.
var strRepresentation3 = MyEmusEnum["monehh"];
// Should be okay; should be a MyEmusEnum
var strRepresentation4 = MyEmusEnum["emu"];
// Should report an implicit 'any'.
var x = {}["hi"];
// Should report an implicit 'any'.
var y = {}[10];
var hi = "hi";
var emptyObj = {};
// Should report an implicit 'any'.
var z1 = emptyObj[hi];
var z2 = emptyObj[hi];
var m = {
    "0": 0,
    "1": 1,
    "2": 2,
    "Okay that's enough for today.": NaN
};
var mResult1 = m[MyEmusEnum.emu];
var mResult2 = m[MyEmusEnum[MyEmusEnum.emu]];
var mResult3 = m[hi];