如何从单个打字稿文件中仅生成.d.ts?

时间:2017-08-04 21:38:12

标签: typescript

我想为单个.d.ts文件创建一个.ts文件,而从我的源{{1}创建.js个文件文件。

我想运行类似的东西:

.ts

但结果只有$ tsc myFile.ts -d 生成的myFile.ts文件。

目前,结果是该项目中的.d.ts文件的所有文件生成了自己的.ts.js文件。

我的目标是.d.ts,因此模块选项应该默认为CommonJS(如果这很重要)。

1 个答案:

答案 0 :(得分:2)

  

我想为单个.ts文件创建单个.d.ts文件,而不是从源.ts文件创建.js文件。

虽然没有编译器选项,但我们可以包含和删除生成的.js文件。

案例1:单个.ts文件,不导入本地.ts文件

我们可以做的是1.将.指定为声明目录,2。将temp指定为JavaScript目录,然后3.在转换后删除temp目录。

tsc --declaration --declarationDir . --outDir temp foo.ts
rm -rf temp

如果foo.ts不导入其他本地.ts文件,那么该方法有效。当foo.ts导入其他本地.ts文件时,编译器会为每个文件创建一个单独的.d.ts文件。由于这不是我们现在想要的,所以接下来会更好。

案例2:导入本地.ts文件的单个.ts文件

如果我们的用例允许创建systemamd样式声明文件,我们可以这样做:

tsc foo.ts --outFile foo.js --declaration --module system
rm -rf foo.js

两个案例中的结果

这两种方法都生成具有不同声明文件语法的相同目录结构。

bar
  bar.ts
foo.d.ts           <---- a single declaration file
foo.ts
tsconfig.json