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 };
>Foo : Symbol(Foo, Decl(strictBindCallApply2.ts, 0, 0))
>blub : Symbol(Foo.blub, Decl(strictBindCallApply2.ts, 2, 15))
function fn(this: Foo) {}
>fn : Symbol(fn, Decl(strictBindCallApply2.ts, 2, 31))
>this : Symbol(this, Decl(strictBindCallApply2.ts, 3, 12))
>Foo : Symbol(Foo, Decl(strictBindCallApply2.ts, 0, 0))
type Test = ThisParameterType<typeof fn>;
>Test : Symbol(Test, Decl(strictBindCallApply2.ts, 3, 25))
>ThisParameterType : Symbol(ThisParameterType, Decl(lib.es5.d.ts, --, --))
>fn : Symbol(fn, Decl(strictBindCallApply2.ts, 2, 31))
const fb = fn.bind({ blub: "blub" });
>fb : Symbol(fb, Decl(strictBindCallApply2.ts, 7, 5))
>fn.bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more)
>fn : Symbol(fn, Decl(strictBindCallApply2.ts, 2, 31))
>bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more)
>blub : Symbol(blub, Decl(strictBindCallApply2.ts, 7, 20))
|