【发布时间】:2021-06-29 20:20:42
【问题描述】:
我有一个 .d.ts 文件,想将它编译成一个 .js 文件。这可以使用tsc 命令吗?
我知道tsc 命令可以获取任何 .ts 文件,然后将其编译成 .js 文件(我已经对此进行了测试)。但是,我无法让它将 .d.ts 文件作为输入,因为它没有为我输出任何 .js 文件。
我尝试过使用 tsconfig.json 以及我的文件目前的样子:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"sourceMap": true,
"outDir": "ali_output_javascript"
}
}
我还知道以下有关 .d.ts 和 .ts 文件的信息。 Typescript 声明文件 (.d.ts) 描述了 JavaScript 文件的形状。它允许您在 TypeScript 中使用现有的 JavaScript 代码,而无需在 TypeScript 中编写所有代码。 Typescript 文件 (.ts) 只是使用 typescript 编写时的标准文件扩展名。
在这篇中型文章 (https://medium.com/jspoint/typescript-compilation-the-typescript-compiler-4cb15f7244bc) 中,确实说 TypeScript 编译会查找文件扩展名 .ts 和 .d.ts:
通常,您会使用 files 或 include 选项并提供文件路径或 glob 模式以在编译过程中包含 TypeScript 文件。但是,您可以从 glob 模式中删除 .ts 扩展名,让 TypeScript 编译器搜索输入文件。 当 glob 模式没有文件扩展名时,TypeScript 会在 glob 模式指向的目录中查找以 .ts 或 .d.ts 扩展名结尾的文件。 .d.ts 文件是一个 TypeScript 声明文件,我们在声明文件课程(即将推出)中讨论了这种文件类型。当 allowJS 编译器选项设置为 true 时,TypeScript 也会搜索 .js 文件。
如果您有任何建议,请告诉我,感谢您的宝贵时间。
【问题讨论】:
-
一个 .d.ts 文件包含 类型,而不是实现,那么从中会发出什么 JS?
-
.d.ts文件不包含可执行代码,仅包含类型。当你编译一个.js文件时,类型就消失了。您希望它导出什么? -
@jonrsharpe,Alex Wayne 谢谢,你们俩都提出了很好的观点 :) 我也对此有点困惑,但后来中篇文章让我有理由相信可能会有一种方法。我想我可能误解了中篇文章想要表达的意思。再次感谢您的帮助!
标签: javascript typescript compilation tsconfig tsc