=== tests/cases/compiler/varArgParamTypeCheck.ts === function sequence(...sequences:{():void;}[]) { >sequence : (...sequences: (() => void)[]) => void, Symbol(sequence, Decl(varArgParamTypeCheck.ts, 0, 0)) >sequences : (() => void)[], Symbol(sequences, Decl(varArgParamTypeCheck.ts, 0, 18)) } function callback(clb:()=>void) { >callback : (clb: () => void) => void, Symbol(callback, Decl(varArgParamTypeCheck.ts, 1, 1)) >clb : () => void, Symbol(clb, Decl(varArgParamTypeCheck.ts, 3, 18)) } sequence( >sequence( function bar() { }, function foo() { callback(()=>{ this(); }); }, function baz() { callback(()=>{ this(); }); }) : void >sequence : (...sequences: (() => void)[]) => void, Symbol(sequence, Decl(varArgParamTypeCheck.ts, 0, 0)) function bar() { >function bar() { } : () => void >bar : () => void, Symbol(bar, Decl(varArgParamTypeCheck.ts, 6, 9)) }, function foo() { >function foo() { callback(()=>{ this(); }); } : () => void >foo : () => void, Symbol(foo, Decl(varArgParamTypeCheck.ts, 8, 6)) callback(()=>{ >callback(()=>{ this(); }) : void >callback : (clb: () => void) => void, Symbol(callback, Decl(varArgParamTypeCheck.ts, 1, 1)) >()=>{ this(); } : () => void this(); >this() : any >this : any }); }, function baz() { >function baz() { callback(()=>{ this(); }); } : () => void >baz : () => void, Symbol(baz, Decl(varArgParamTypeCheck.ts, 13, 6)) callback(()=>{ >callback(()=>{ this(); }) : void >callback : (clb: () => void) => void, Symbol(callback, Decl(varArgParamTypeCheck.ts, 1, 1)) >()=>{ this(); } : () => void this(); >this() : any >this : any }); } );