Typescript 编译器 API:在一行上打印 PropertySignature

Typescript compiler API: print PropertySignature on a single line

我正在尝试生成一个 return 对象文字类型的函数(不确定该术语是否正确)。我目前使用的是:

ts.createFunctionDeclaration(
    undefined, //decorators
    [], //modifiers
    undefined, //asterisk
    'foo',
    undefined, //name
    [], //parameters

    ts.createTypeLiteralNode( //return type
        [
            ts.createPropertySignature(
                undefined, //modifiers
                ts.createIdentifier('bar'),
                undefined, //question token
                ts.createTypeReferenceNode(
                    'string',
                    undefined //generics
                ),
                undefined //initializer
            ),
            ts.createPropertySignature(
                undefined, //modifiers
                ts.createIdentifier('baz'),
                undefined, //question token
                ts.createTypeReferenceNode(
                    'string',
                    undefined //generics
                ),
                undefined //initializer
            )
        ]
    ),

    ts.createBlock([
        //some interesting statements
    ])
);

这会生成以下代码:

function foo(): {
    bar: string;
    baz: string;
} {
    //interesting statements
}

它有效,但我希望 return 类型文字像这样在一行中:

function foo(): { bar: string, baz: string } {
    //interesting statements
}

是否可以仅使用 Typescript 编译器 API,或者我是否需要使用外部 linter/formatter?

尝试在类型文字节点上设置发射标志 EmitFlags.SingleLine

const typeLiteralNode = ts.createTypeLiteralNode(...);
ts.setEmitFlags(typeLiteralNode, EmitFlags.SingleLine);

emitTypeLiteral in emitter.ts 似乎表明可以这样做。