Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript编译器API:在单行上打印PropertySignature_Typescript_Typescript Compiler Api - Fatal编程技术网

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

Typescript编译器API:在单行上打印PropertySignature,typescript,typescript-compiler-api,Typescript,Typescript Compiler Api,我试图生成一个返回对象文本类型的函数(不确定这是否是正确的术语)。我目前使用以下方法: ts.createFunctionDeclaration( 未定义,//装饰符 [],//修饰符 未定义,//星号 "福",, 未定义,//名称 [],//参数 ts.createTypeLiteralNode(//返回类型 [ ts.createPropertySignature( 未定义,//修饰符 ts.createIdentifier('bar'), 未定义,//问题标记 ts.createTypeR

我试图生成一个返回对象文本类型的函数(不确定这是否是正确的术语)。我目前使用以下方法:

ts.createFunctionDeclaration(
未定义,//装饰符
[],//修饰符
未定义,//星号
"福",,
未定义,//名称
[],//参数
ts.createTypeLiteralNode(//返回类型
[
ts.createPropertySignature(
未定义,//修饰符
ts.createIdentifier('bar'),
未定义,//问题标记
ts.createTypeReferenceNode(
'字符串',
未定义//泛型
),
未定义//初始值设定项
),
ts.createPropertySignature(
未定义,//修饰符
ts.createIdentifier('baz'),
未定义,//问题标记
ts.createTypeReferenceNode(
'字符串',
未定义//泛型
),
未定义//初始值设定项
)
]
),
创建块([
//一些有趣的陈述
])
);
这将生成以下代码:

函数foo():{
酒吧:字符串;
baz:字符串;
} {
//有趣的陈述
}
它可以工作,但我希望返回类型文字位于一行,如下所示:

函数foo():{bar:string,baz:string}{
//有趣的陈述
}

这是否可以仅使用Typescript编译器API实现,还是需要使用外部linter/格式化程序?

尝试设置emit flag
EmitFlags。在type literal节点上的SingleLine

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

在中,似乎表明可以执行此操作。

尝试设置发射标志
EmitFlags。在type literal节点上的SingleLine

const typeLiteralNode = ts.createTypeLiteralNode(...);
ts.setEmitFlags(typeLiteralNode, EmitFlags.SingleLine);
这似乎表明有可能做到这一点