==== tests/cases/compiler/assignmentCompatFunctionsWithOptionalArgs.ts (5 errors) ====
    function foo(x: { id: number; name?: string; }): void;
    foo({ id: 1234 });                 // Ok
    ~~~
!!! assignmentCompatFunctionsWithOptionalArgs.ts(2,1): error TS1041: Function implementation expected.
    foo({ id: 1234, name: "hello" });  // Ok
    foo({ id: 1234, name: false });    // Error, name of wrong type
    ~~~
!!! assignmentCompatFunctionsWithOptionalArgs.ts(4,1): error TS2082: Supplied parameters do not match any signature of call target:
!!! 	Types of property 'name' of types '{ id: number; name: boolean; }' and '{ id: number; name?: string; }' are incompatible.
    ~~~
!!! assignmentCompatFunctionsWithOptionalArgs.ts(4,1): error TS2087: Could not select overload for 'call' expression.
    foo({ name: "hello" });            // Error, id required but missing
    ~~~
!!! assignmentCompatFunctionsWithOptionalArgs.ts(5,1): error TS2082: Supplied parameters do not match any signature of call target:
!!! 	Type '{ name: string; }' is missing property 'id' from type '{ id: number; name?: string; }'.
    ~~~
!!! assignmentCompatFunctionsWithOptionalArgs.ts(5,1): error TS2087: Could not select overload for 'call' expression.