~~ lineWidth: 40 ~~
== should format ==
function t([  a   ,   b  ]) {
}

[expect]
function t([a, b]) {
}

== should format with a type annotation ==
function t([  a   ,   b  ]: [string   , number]) {
}

[expect]
function t([a, b]: [string, number]) {
}

== should allow empty elements ==
[a, , b] = 0;
const [a, , ,] = something;
const [a,] = something;
const [a, , ,test,] = something;
const [a, , ,test] = something;

[expect]
[a, , b] = 0;
const [a, , ,] = something;
const [a] = something;
const [a, , , test] = something;
const [a, , , test] = something;

== should format as multi-line when exceeding the line width ==
function t(
    [testing, thisOutWhere, itGoesOverTheLineWidth]
) {
}

[expect]
function t(
    [
        testing,
        thisOutWhere,
        itGoesOverTheLineWidth,
    ],
) {
}

== should format when optional ==
export declare class EventInit {
    constructor([t]?: string[]);
}

[expect]
export declare class EventInit {
    constructor([t]?: string[]);
}
