使用transpileModule生成定义.d.ts

时间:2017-12-29 13:11:26

标签: typescript

我正在使用TypeScript编译器API从ts生成j。

我的ts代码已生成,因此它不会保存在任何文件中,我使用transpileModule直接生成js而无需保存临时ts文件。

https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#transpiling-a-single-file

但是我希望能够选择生成靠近js文件的declarations。 我正在将declarationdeclarationDir传递给编译器选项,但它什么也没做......

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 });

1 个答案:

答案 0 :(得分:2)

您无法使用transpileModule生成声明文件,因为此函数仅执行语法转换(而声明文件发出需要语义信息)。您需要使用该页面顶部显示的常用createProgram功能。