1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
=== tests/cases/conformance/functions/strictBindCallApply2.ts ===
// Repro from #32964
interface Foo { blub: string };
>blub : string
function fn(this: Foo) {}
>fn : (this: Foo) => void
>this : Foo
type Test = ThisParameterType<typeof fn>;
>Test : Foo
>fn : (this: Foo) => void
const fb = fn.bind({ blub: "blub" });
>fb : () => void
>fn.bind({ blub: "blub" }) : () => void
>fn.bind : { <T>(this: T, thisArg: ThisParameterType<T>): OmitThisParameter<T>; <T, A extends any[], B extends any[], R>(this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; }
>fn : (this: Foo) => void
>bind : { <T>(this: T, thisArg: ThisParameterType<T>): OmitThisParameter<T>; <T, A extends any[], B extends any[], R>(this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; }
>{ blub: "blub" } : { blub: string; }
>blub : string
>"blub" : "blub"
|