=== tests/cases/compiler/implementArrayInterface.ts === declare class MyArray implements Array { >MyArray : Symbol(MyArray, Decl(implementArrayInterface.ts, 0, 0)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) toString(): string; >toString : Symbol(toString, Decl(implementArrayInterface.ts, 0, 46)) toLocaleString(): string; >toLocaleString : Symbol(toLocaleString, Decl(implementArrayInterface.ts, 1, 23)) concat(...items: U[]): T[]; >concat : Symbol(concat, Decl(implementArrayInterface.ts, 2, 29), Decl(implementArrayInterface.ts, 3, 46)) >U : Symbol(U, Decl(implementArrayInterface.ts, 3, 11)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >items : Symbol(items, Decl(implementArrayInterface.ts, 3, 26)) >U : Symbol(U, Decl(implementArrayInterface.ts, 3, 11)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) concat(...items: T[]): T[]; >concat : Symbol(concat, Decl(implementArrayInterface.ts, 2, 29), Decl(implementArrayInterface.ts, 3, 46)) >items : Symbol(items, Decl(implementArrayInterface.ts, 4, 11)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) join(separator?: string): string; >join : Symbol(join, Decl(implementArrayInterface.ts, 4, 31)) >separator : Symbol(separator, Decl(implementArrayInterface.ts, 5, 9)) pop(): T; >pop : Symbol(pop, Decl(implementArrayInterface.ts, 5, 37)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) push(...items: T[]): number; >push : Symbol(push, Decl(implementArrayInterface.ts, 6, 13)) >items : Symbol(items, Decl(implementArrayInterface.ts, 7, 9)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) reverse(): T[]; >reverse : Symbol(reverse, Decl(implementArrayInterface.ts, 7, 32)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) shift(): T; >shift : Symbol(shift, Decl(implementArrayInterface.ts, 8, 19)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) slice(start?: number, end?: number): T[]; >slice : Symbol(slice, Decl(implementArrayInterface.ts, 9, 15)) >start : Symbol(start, Decl(implementArrayInterface.ts, 10, 10)) >end : Symbol(end, Decl(implementArrayInterface.ts, 10, 25)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) sort(compareFn?: (a: T, b: T) => number): T[]; >sort : Symbol(sort, Decl(implementArrayInterface.ts, 10, 45)) >compareFn : Symbol(compareFn, Decl(implementArrayInterface.ts, 11, 9)) >a : Symbol(a, Decl(implementArrayInterface.ts, 11, 22)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >b : Symbol(b, Decl(implementArrayInterface.ts, 11, 27)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) splice(start: number): T[]; >splice : Symbol(splice, Decl(implementArrayInterface.ts, 11, 50), Decl(implementArrayInterface.ts, 12, 31)) >start : Symbol(start, Decl(implementArrayInterface.ts, 12, 11)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) splice(start: number, deleteCount: number, ...items: T[]): T[]; >splice : Symbol(splice, Decl(implementArrayInterface.ts, 11, 50), Decl(implementArrayInterface.ts, 12, 31)) >start : Symbol(start, Decl(implementArrayInterface.ts, 13, 11)) >deleteCount : Symbol(deleteCount, Decl(implementArrayInterface.ts, 13, 25)) >items : Symbol(items, Decl(implementArrayInterface.ts, 13, 46)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) unshift(...items: T[]): number; >unshift : Symbol(unshift, Decl(implementArrayInterface.ts, 13, 67)) >items : Symbol(items, Decl(implementArrayInterface.ts, 14, 12)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) indexOf(searchElement: T, fromIndex?: number): number; >indexOf : Symbol(indexOf, Decl(implementArrayInterface.ts, 14, 35)) >searchElement : Symbol(searchElement, Decl(implementArrayInterface.ts, 16, 12)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >fromIndex : Symbol(fromIndex, Decl(implementArrayInterface.ts, 16, 29)) lastIndexOf(searchElement: T, fromIndex?: number): number; >lastIndexOf : Symbol(lastIndexOf, Decl(implementArrayInterface.ts, 16, 58)) >searchElement : Symbol(searchElement, Decl(implementArrayInterface.ts, 17, 16)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >fromIndex : Symbol(fromIndex, Decl(implementArrayInterface.ts, 17, 33)) every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; >every : Symbol(every, Decl(implementArrayInterface.ts, 17, 62)) >callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 18, 10)) >value : Symbol(value, Decl(implementArrayInterface.ts, 18, 23)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >index : Symbol(index, Decl(implementArrayInterface.ts, 18, 32)) >array : Symbol(array, Decl(implementArrayInterface.ts, 18, 47)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >thisArg : Symbol(thisArg, Decl(implementArrayInterface.ts, 18, 71)) some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; >some : Symbol(some, Decl(implementArrayInterface.ts, 18, 96)) >callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 19, 9)) >value : Symbol(value, Decl(implementArrayInterface.ts, 19, 22)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >index : Symbol(index, Decl(implementArrayInterface.ts, 19, 31)) >array : Symbol(array, Decl(implementArrayInterface.ts, 19, 46)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >thisArg : Symbol(thisArg, Decl(implementArrayInterface.ts, 19, 70)) forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; >forEach : Symbol(forEach, Decl(implementArrayInterface.ts, 19, 95)) >callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 20, 12)) >value : Symbol(value, Decl(implementArrayInterface.ts, 20, 25)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >index : Symbol(index, Decl(implementArrayInterface.ts, 20, 34)) >array : Symbol(array, Decl(implementArrayInterface.ts, 20, 49)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >thisArg : Symbol(thisArg, Decl(implementArrayInterface.ts, 20, 70)) map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; >map : Symbol(map, Decl(implementArrayInterface.ts, 20, 92)) >U : Symbol(U, Decl(implementArrayInterface.ts, 21, 8)) >callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 21, 11)) >value : Symbol(value, Decl(implementArrayInterface.ts, 21, 24)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >index : Symbol(index, Decl(implementArrayInterface.ts, 21, 33)) >array : Symbol(array, Decl(implementArrayInterface.ts, 21, 48)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >U : Symbol(U, Decl(implementArrayInterface.ts, 21, 8)) >thisArg : Symbol(thisArg, Decl(implementArrayInterface.ts, 21, 66)) >U : Symbol(U, Decl(implementArrayInterface.ts, 21, 8)) filter(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): T[]; >filter : Symbol(filter, Decl(implementArrayInterface.ts, 21, 87)) >callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 22, 11)) >value : Symbol(value, Decl(implementArrayInterface.ts, 22, 24)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >index : Symbol(index, Decl(implementArrayInterface.ts, 22, 33)) >array : Symbol(array, Decl(implementArrayInterface.ts, 22, 48)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >thisArg : Symbol(thisArg, Decl(implementArrayInterface.ts, 22, 72)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; >reduce : Symbol(reduce, Decl(implementArrayInterface.ts, 22, 93), Decl(implementArrayInterface.ts, 23, 120)) >callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 23, 11)) >previousValue : Symbol(previousValue, Decl(implementArrayInterface.ts, 23, 24)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >currentValue : Symbol(currentValue, Decl(implementArrayInterface.ts, 23, 41)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >currentIndex : Symbol(currentIndex, Decl(implementArrayInterface.ts, 23, 58)) >array : Symbol(array, Decl(implementArrayInterface.ts, 23, 80)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >initialValue : Symbol(initialValue, Decl(implementArrayInterface.ts, 23, 98)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; >reduce : Symbol(reduce, Decl(implementArrayInterface.ts, 22, 93), Decl(implementArrayInterface.ts, 23, 120)) >U : Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) >callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 24, 14)) >previousValue : Symbol(previousValue, Decl(implementArrayInterface.ts, 24, 27)) >U : Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) >currentValue : Symbol(currentValue, Decl(implementArrayInterface.ts, 24, 44)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >currentIndex : Symbol(currentIndex, Decl(implementArrayInterface.ts, 24, 61)) >array : Symbol(array, Decl(implementArrayInterface.ts, 24, 83)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >U : Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) >initialValue : Symbol(initialValue, Decl(implementArrayInterface.ts, 24, 101)) >U : Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) >U : Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; >reduceRight : Symbol(reduceRight, Decl(implementArrayInterface.ts, 24, 122), Decl(implementArrayInterface.ts, 25, 125)) >callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 25, 16)) >previousValue : Symbol(previousValue, Decl(implementArrayInterface.ts, 25, 29)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >currentValue : Symbol(currentValue, Decl(implementArrayInterface.ts, 25, 46)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >currentIndex : Symbol(currentIndex, Decl(implementArrayInterface.ts, 25, 63)) >array : Symbol(array, Decl(implementArrayInterface.ts, 25, 85)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >initialValue : Symbol(initialValue, Decl(implementArrayInterface.ts, 25, 103)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; >reduceRight : Symbol(reduceRight, Decl(implementArrayInterface.ts, 24, 122), Decl(implementArrayInterface.ts, 25, 125)) >U : Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) >callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 26, 19)) >previousValue : Symbol(previousValue, Decl(implementArrayInterface.ts, 26, 32)) >U : Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) >currentValue : Symbol(currentValue, Decl(implementArrayInterface.ts, 26, 49)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >currentIndex : Symbol(currentIndex, Decl(implementArrayInterface.ts, 26, 66)) >array : Symbol(array, Decl(implementArrayInterface.ts, 26, 88)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) >U : Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) >initialValue : Symbol(initialValue, Decl(implementArrayInterface.ts, 26, 106)) >U : Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) >U : Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) length: number; >length : Symbol(length, Decl(implementArrayInterface.ts, 26, 127)) [n: number]: T; >n : Symbol(n, Decl(implementArrayInterface.ts, 30, 5)) >T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) }