1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
=== tests/cases/compiler/cachedContextualTypes.ts ===
// Repro from #52198
declare function createInstance<Ctor extends new (...args: any[]) => any, R extends InstanceType<Ctor>>(ctor: Ctor, ...args: ConstructorParameters<Ctor>): R;
>createInstance : <Ctor extends new (...args: any[]) => any, R extends InstanceType<Ctor>>(ctor: Ctor, ...args: ConstructorParameters<Ctor>) => R
>args : any[]
>ctor : Ctor
>args : ConstructorParameters<Ctor>
export interface IMenuWorkbenchToolBarOptions {
toolbarOptions: {
>toolbarOptions : { foo(bar: string): string; }
foo(bar: string): string
>foo : (bar: string) => string
>bar : string
};
}
class MenuWorkbenchToolBar {
>MenuWorkbenchToolBar : MenuWorkbenchToolBar
constructor(
options: IMenuWorkbenchToolBarOptions | undefined,
>options : IMenuWorkbenchToolBarOptions | undefined
) { }
}
createInstance(MenuWorkbenchToolBar, {
>createInstance(MenuWorkbenchToolBar, { toolbarOptions: { foo(bar) { return bar; } }}) : MenuWorkbenchToolBar
>createInstance : <Ctor extends new (...args: any[]) => any, R extends InstanceType<Ctor>>(ctor: Ctor, ...args: ConstructorParameters<Ctor>) => R
>MenuWorkbenchToolBar : typeof MenuWorkbenchToolBar
>{ toolbarOptions: { foo(bar) { return bar; } }} : { toolbarOptions: { foo(bar: string): string; }; }
toolbarOptions: {
>toolbarOptions : { foo(bar: string): string; }
>{ foo(bar) { return bar; } } : { foo(bar: string): string; }
foo(bar) { return bar; }
>foo : (bar: string) => string
>bar : string
>bar : string
}
});
|