tests/cases/compiler/indexer2A.ts(4,5): error TS2391: Function implementation is missing or not immediately following the declaration. tests/cases/compiler/indexer2A.ts(7,25): error TS2352: Neither type '{ [x: number]: undefined; }' nor type 'IDirectChildrenMap' is assignable to the other. Types of property 'hasOwnProperty' are incompatible. Type '(v: string) => boolean' is not assignable to type '(objectId: number) => boolean'. Types of parameters 'v' and 'objectId' are incompatible. Type 'string' is not assignable to type 'number'. ==== tests/cases/compiler/indexer2A.ts (2 errors) ==== class IHeapObjectProperty { } class IDirectChildrenMap { // Decided to enforce a semicolon after declarations hasOwnProperty(objectId: number): boolean ~~~~~~~~~~~~~~ !!! error TS2391: Function implementation is missing or not immediately following the declaration. [objectId: number]: IHeapObjectProperty[] } var directChildrenMap = {}; ~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2352: Neither type '{ [x: number]: undefined; }' nor type 'IDirectChildrenMap' is assignable to the other. !!! error TS2352: Types of property 'hasOwnProperty' are incompatible. !!! error TS2352: Type '(v: string) => boolean' is not assignable to type '(objectId: number) => boolean'. !!! error TS2352: Types of parameters 'v' and 'objectId' are incompatible. !!! error TS2352: Type 'string' is not assignable to type 'number'.