【问题标题】:Does the `tsc` command accept .d.ts files?`tsc` 命令是否接受 .d.ts 文件?
【发布时间】: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


【解决方案1】:

您误解了 .d.ts 文件是什么。

它们不应该被转译成 .js 文件,.ts 文件应该被转译成 .js 文件 .d.ts 文件以便在 JavaScript IDE 中进行强类型化,或进一步用于 TypeScript 项目。

另外,.d.ts 不是可执行文件,也不能生成可执行文件,因为它们只是带有类型的空壳,在 TypeScript 术语中也称为 环境声明,意思是“没有实现”。

【讨论】:

  • 非常感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 2021-09-06
  • 2018-04-17
  • 2018-03-05
  • 2015-02-19
  • 2013-08-19
  • 2016-11-09
  • 2016-10-18
  • 2021-05-28
相关资源
最近更新 更多