function one(this: number) {} function two(this: number, a) {} function three(this: number, ...a) {} function four(this: number, a, b, ...c) {} function five(this: T) {} type six = (this: number) => void; type seven = (this: number, a: number) => void; type eight = (this: number, ...a: any) => void; type nine = (this: T) => void; type ten = { m1(this: string): void, m2(this: string, a: number): void, m3(this: string, ...a: any): void, m4(this: T): void, }; declare function eleven(this: number): void; declare function twelve(this: string, a: number): void; declare function thirteen(this: string, ...a: any): void; declare function fourteen(this: T): void; declare class Fifteen { m1(this: string): void, m2(this: string, a: number): void, m3(this: string, ...a: any): void, m4(this: T): void, } class Sixteen { m1(this: number) {} m2(this: number, a) {} m3(this: number, ...a) {} m4(this: number, a, b, ...c) {} m5(this: T) {} } let seventeen = { m1(this: number) {}, m2(this: number, a) {}, m3(this: number, ...a) {}, m4(this: number, a, b, ...c) {}, m5(this: T) {} };