~~ lineWidth: 40 ~~
== should format ==
type Test = {
    new(): string;
    new<T>(param: string): string;
    new(param: string, otherParam: number): string;
    new();
};

[expect]
type Test = {
    new(): string;
    new<T>(param: string): string;
    new(param: string,
        otherParam: number): string;
    new();
};

== should format the return type as hanging when it's hanging ==
interface T {
    new(param: string): testing | number;
}

[expect]
interface T {
    new(param: string): testing
        | number;
}

== should format the return type on the same line when the rest of the header is hanging ==
interface T {
    new (param: string, otherTest: string): te | st;
}

[expect]
interface T {
    new(param: string,
        otherTest: string): te | st;
}

== should format the return type on a new line when it's hanging and the rest of the header is hanging ==
interface T {
    new (param: string, otherTest: string): test | other | other;
}

[expect]
interface T {
    new(param: string,
        otherTest: string
    ): test | other | other;
}
