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
|
tests/cases/compiler/noImplicitAnyIndexing.ts(12,37): error TS7015: Element implicitly has an 'any' type because index expression is not of type 'number'.
tests/cases/compiler/noImplicitAnyIndexing.ts(19,9): error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature.
tests/cases/compiler/noImplicitAnyIndexing.ts(22,9): error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature.
tests/cases/compiler/noImplicitAnyIndexing.ts(30,10): error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature.
==== tests/cases/compiler/noImplicitAnyIndexing.ts (4 errors) ====
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"];
~~~~~~~~
!!! error TS7015: Element implicitly has an 'any' type because index expression is not of type 'number'.
// Should be okay; should be a MyEmusEnum
var strRepresentation4 = MyEmusEnum["emu"];
// Should report an implicit 'any'.
var x = {}["hi"];
~~~~~~~~
!!! error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature.
// Should report an implicit 'any'.
var y = {}[10];
~~~~~~
!!! error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature.
var hi: any = "hi";
var emptyObj = {};
// Should report an implicit 'any'.
var z1 = emptyObj[hi];
~~~~~~~~~~~~
!!! error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature.
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];
|