interface Array { flatMap( fn: (this: R, x: T, index: number, array: this) => ReadonlyArray, thisArg?: R ): U[]; } interface ReadonlyArray { flatMap( fn: (this: R, x: T, index: number, array: this) => ReadonlyArray, thisArg?: R ): U[]; }