tests/cases/conformance/es6/destructuring/optionalBindingParameters2.ts(2,14): error TS2463: A binding pattern parameter cannot be optional in an implementation signature.
tests/cases/conformance/es6/destructuring/optionalBindingParameters2.ts(8,5): error TS2345: Argument of type '{ x: boolean; y: number; z: string; }' is not assignable to parameter of type '{ x: string; y: number; z: boolean; }'.
  Types of property 'x' are incompatible.
    Type 'boolean' is not assignable to type 'string'.


==== tests/cases/conformance/es6/destructuring/optionalBindingParameters2.ts (2 errors) ====
    
    function foo({ x, y, z }?: { x: string; y: number; z: boolean }) {
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2463: A binding pattern parameter cannot be optional in an implementation signature.
    
    }
    
    foo({ x: "", y: 0, z: false });
    
    foo({ x: false, y: 0, z: "" });
        ~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2345: Argument of type '{ x: boolean; y: number; z: string; }' is not assignable to parameter of type '{ x: string; y: number; z: boolean; }'.
!!! error TS2345:   Types of property 'x' are incompatible.
!!! error TS2345:     Type 'boolean' is not assignable to type 'string'.