Я пытаюсь сгенерировать функцию, которая возвращает объектно-литеральный тип (не уверен, что это правильный термин). В настоящее время я использую следующее:
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
}
Это работает, но я бы хотел, чтобы литерал возвращаемого типа был в одной строке, например:
function foo(): { bar: string, baz: string } {
//interesting statements
}
Возможно ли это с помощью только API компилятора Typescript или мне нужно использовать внешний линтер / форматтер?