我正在使用TypeScript编译器API从ts生成j。
我的ts代码已生成,因此它不会保存在任何文件中,我使用transpileModule
直接生成js而无需保存临时ts文件。
https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#transpiling-a-single-file
但是我希望能够选择生成靠近js文件的declarations
。
我正在将declaration
和declarationDir
传递给编译器选项,但它什么也没做......
export const defaultCompilerOptions: ts.CompilerOptions = {
target: ts.ScriptTarget.Latest,
module: ts.ModuleKind.ES2015,
lib: ['es2015'],
strict: true,
declaration: true,
declarationDir: '/tmp/xpto',
};
const gen = ts.transpileModule(tsCode, { compilerOptions, fileName, reportDiagnostics: true });
答案 0 :(得分:2)
您无法使用transpileModule
生成声明文件,因为此函数仅执行语法转换(而声明文件发出需要语义信息)。您需要使用该页面顶部显示的常用createProgram
功能。