82 lines
1.9 KiB
JavaScript
82 lines
1.9 KiB
JavaScript
//// [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[0 /* emu */];
|
|
// Should be implicit 'any' ; property access fails, no string indexer.
|
|
var strRepresentation3 = MyEmusEnum["monehh"];
|
|
// Should be okay; should be a MyEmusEnum
|
|
var strRepresentation4 = 0 /* "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[0 /* emu */];
|
|
var mResult2 = m[MyEmusEnum[0 /* emu */]];
|
|
var mResult3 = m[hi];
|