tests/cases/conformance/types/mapped/mappedTypeInferenceErrors.ts(9,5): error TS2345: Argument of type '{ props: { x: number; y: number; }; computed: { bar(): number; baz: number; }; }' is not assignable to parameter of type '{ props: { x: number; y: number; }; computed: ComputedOf<{ bar: any; baz: any; }>; } & ThisType<{ x: number; y: number; } & { bar: any; baz: any; }>'.
  Type '{ props: { x: number; y: number; }; computed: { bar(): number; baz: number; }; }' is not assignable to type '{ props: { x: number; y: number; }; computed: ComputedOf<{ bar: any; baz: any; }>; }'.
    Types of property 'computed' are incompatible.
      Type '{ bar(): number; baz: number; }' is not assignable to type 'ComputedOf<{ bar: any; baz: any; }>'.
        Types of property 'baz' are incompatible.
          Type 'number' is not assignable to type '() => {}'.


==== tests/cases/conformance/types/mapped/mappedTypeInferenceErrors.ts (1 errors) ====
    // Repro from #19316
    
    type ComputedOf<T> = {
        [K in keyof T]: () => T[K];
    }
    
    declare function foo<P, C>(options: { props: P, computed: ComputedOf<C> } & ThisType<P & C>): void;
    
    foo({
        ~
        props: { x: 10, y: 20 },
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        computed: {
    ~~~~~~~~~~~~~~~
            bar(): number {
    ~~~~~~~~~~~~~~~~~~~~~~~
                let z = this.bar;
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                return 42;
    ~~~~~~~~~~~~~~~~~~~~~~
            },
    ~~~~~~~~~~
            baz: 42
    ~~~~~~~~~~~~~~~
        }
    ~~~~~
    });
    ~
!!! error TS2345: Argument of type '{ props: { x: number; y: number; }; computed: { bar(): number; baz: number; }; }' is not assignable to parameter of type '{ props: { x: number; y: number; }; computed: ComputedOf<{ bar: any; baz: any; }>; } & ThisType<{ x: number; y: number; } & { bar: any; baz: any; }>'.
!!! error TS2345:   Type '{ props: { x: number; y: number; }; computed: { bar(): number; baz: number; }; }' is not assignable to type '{ props: { x: number; y: number; }; computed: ComputedOf<{ bar: any; baz: any; }>; }'.
!!! error TS2345:     Types of property 'computed' are incompatible.
!!! error TS2345:       Type '{ bar(): number; baz: number; }' is not assignable to type 'ComputedOf<{ bar: any; baz: any; }>'.
!!! error TS2345:         Types of property 'baz' are incompatible.
!!! error TS2345:           Type 'number' is not assignable to type '() => {}'.
    