//// [declarationEmitDestructuringParameterProperties.ts]
class C1 {
    constructor(public [x, y, z]: string[]) {
    }
}

type TupleType1 =[string, number, boolean];
class C2 {
    constructor(public [x, y, z]: TupleType1) {
    }
}

type ObjType1 = { x: number; y: string; z: boolean }
class C3 {
    constructor(public { x, y, z }: ObjType1) {
    }
}

//// [declarationEmitDestructuringParameterProperties.js]
var C1 = (function () {
    function C1(_a) {
        var x = _a[0], y = _a[1], z = _a[2];
        this.[x, y, z] = [x, y, z];
    }
    return C1;
})();
var C2 = (function () {
    function C2(_a) {
        var x = _a[0], y = _a[1], z = _a[2];
        this.[x, y, z] = [x, y, z];
    }
    return C2;
})();
var C3 = (function () {
    function C3(_a) {
        var x = _a.x, y = _a.y, z = _a.z;
        this.{ x, y, z } = { x, y, z };
    }
    return C3;
})();


//// [declarationEmitDestructuringParameterProperties.d.ts]
declare class C1 {
    x: string, y: string, z: string;
    constructor([x, y, z]: string[]);
}
declare type TupleType1 = [string, number, boolean];
declare class C2 {
    x: string, y: number, z: boolean;
    constructor([x, y, z]: TupleType1);
}
declare type ObjType1 = {
    x: number;
    y: string;
    z: boolean;
};
declare class C3 {
    x: number, y: string, z: boolean;
    constructor({x, y, z}: ObjType1);
}
