tests/cases/compiler/excessPropertyCheckWithEmptyObject.ts(4,58): error TS2345: Argument of type '{ value: string; readonly: boolean; }' is not assignable to parameter of type 'PropertyDescriptor & ThisType<any>'.
  Object literal may only specify known properties, and 'readonly' does not exist in type 'PropertyDescriptor & ThisType<any>'.
tests/cases/compiler/excessPropertyCheckWithEmptyObject.ts(9,30): error TS2322: Type '{ y: number; }' is not assignable to type 'A & ThisType<any>'.
  Object literal may only specify known properties, and 'y' does not exist in type 'A & ThisType<any>'.
tests/cases/compiler/excessPropertyCheckWithEmptyObject.ts(14,34): error TS2322: Type '{ y: string; }' is not assignable to type 'Empty & { x: number; }'.
  Object literal may only specify known properties, and 'y' does not exist in type 'Empty & { x: number; }'.


==== tests/cases/compiler/excessPropertyCheckWithEmptyObject.ts (3 errors) ====
    // Repro from #14910
    
    // Excess property error expected here
    Object.defineProperty(window, "prop", { value: "v1.0.0", readonly: false });
                                                             ~~~~~~~~~~~~~~~
!!! error TS2345: Argument of type '{ value: string; readonly: boolean; }' is not assignable to parameter of type 'PropertyDescriptor & ThisType<any>'.
!!! error TS2345:   Object literal may only specify known properties, and 'readonly' does not exist in type 'PropertyDescriptor & ThisType<any>'.
    
    interface A { x?: string }
    
    // Excess property error expected here
    let a: A & ThisType<any> = { y: 10 };
                                 ~~~~~
!!! error TS2322: Type '{ y: number; }' is not assignable to type 'A & ThisType<any>'.
!!! error TS2322:   Object literal may only specify known properties, and 'y' does not exist in type 'A & ThisType<any>'.
    
    interface Empty {}
    
    // Excess property error expected here
    let x: Empty & { x: number } = { y: "hello" };
                                     ~~~~~~~~~~
!!! error TS2322: Type '{ y: string; }' is not assignable to type 'Empty & { x: number; }'.
!!! error TS2322:   Object literal may only specify known properties, and 'y' does not exist in type 'Empty & { x: number; }'.
    