我希望在Rust中使用SWC生成一些TypeScript代码。不幸的是,它似乎只能打印JavaScript。这是正确的吗?还是有一种方法可以打印TypeScript?例如,假设我们正在制作以下AST。
use swc_atoms::js_word;
use swc_common::{BytePos, Span, SyntaxContext};
use swc_ecmascript;
use swc_ecmascript::ast;
fn main() {
let program = ast::Program::Module(ast::Module {
body: vec![ast::ModuleItem::ModuleDecl(ast::ModuleDecl::ExportDecl(
ast::ExportDecl {
decl: ast::Decl::TsTypeAlias(ast::TsTypeAliasDecl {
span: Span::default(),
declare: false,
id: ast::Ident::new(js_word!(""), Span::default()),
type_params: None,
type_ann: Box::new(ast::TsType::TsKeywordType(ast::TsKeywordType {
span: Span::default(),
kind: ast::TsKeywordTypeKind::TsStringKeyword,
})),
}),
span: Span::default(),
},
))],
shebang: None,
span: Span::new(BytePos(1), BytePos(1), SyntaxContext::empty()),
});
}
我如何获得与“program” AST 相对应的 TypeScript 代码?