【问题标题】:Can't compile .d.ts TypeScript files in Visual Studio 2013无法在 Visual Studio 2013 中编译 .d.ts TypeScript 文件
【发布时间】:2015-02-14 19:54:13
【问题描述】:

我是第一次尝试 TypeScript,我已经从 nuget 下载了 angularjs.TypeScript.DefinitelyTyped 包,但我无法从中生成 JavaScript 文件。

我尝试删除该文件,创建一个新的 TypeScript 文件(称为 angular.ts),这会生成一个使用完全相同的代码的 JavaScript。我可以保留这个文件并对其他文件做同样的事情,但似乎我应该能够编译这些文件。

我还查看了我的项目的属性,在 TypeScript Build 下我激活了以下选项:

  1. ECMAScript 版本:ECMAScript 5
  2. 保存时编译
  3. 允许隐式“任何”类型
  4. 模块系统:无
  5. 在 JavaScript 输出中保留 cmets
  6. 生成源地图

我在构建项目时没有任何错误,我添加的所有其他 .ts 文件都生成 JavaScript 文件,没有任何问题。我已经查看了这是否是一个已知的 Visual Studio 问题,但我似乎找不到太多关于它的信息。是否有此设置或应该自动发生?

【问题讨论】:

    标签: javascript visual-studio-2013 typescript


    【解决方案1】:

    对不起,如果我误解了这个问题,但您无法编译 d.ts 文件。当你看到 d.ts 文件时,你可以把它想象成一个不是用 TypeScript 编写的项目的接口。

    例如,我使用 Phaser 游戏引擎。所以和其他人一样,我去获取 phaser.js 文件。此时,我的 TypeScript 无法理解这个 phaser.js 文件。所以,我去获取 phaser.d.ts 文件,它包含了 phaser.js 的完整 API。

    所以基本上,.ts 文件将始终编译为 JavaScript,而 .d.ts 是定义文件,为使用 .js 文件提供了桥梁!

    【讨论】:

    • 啊,好吧,我没有意识到这一点。所以换句话说,您需要拥有库的普通 .js 文件(例如 jquery.min.js)以及 .d.ts 文件?
    • 是的!确切地。当您在项目中使用原始 JavaScript 库时。您要做的第一件事是去为它找到一个d.ts 文件。将这些文件视为您开发过程的助手。它们从未发布过,也从未实施过。它们的存在是为了弥补现有库和打字稿之间的差距。
    • 感谢您的帮助,这很有意义
    【解决方案2】:

    我们在我们的应用程序中使用带有 Visual Studio 的 Typescript,但在尝试强制 VS 2013 将 TypeScript 编译为 JavaScript 时,我们也遇到了一些问题。我们选择了Grunt plugin,不再依赖 VS。我建议你这样做。一个警告:不要在 typescript Grunt 任务中使用watch。当您构建项目时,它将触发 VS 进入无限循环。相反,当您对 .ts 文件应用更改时,选项卡切换到命令行并运行 grunt 任务以进行 ts->js 编译。

    【讨论】:

    • TypeScript 显然已完全集成到 VS 2013 中,所以出现这样的问题似乎很奇怪。感谢您的链接
    猜你喜欢
    • 2012-10-14
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 2015-02-21
    • 2013-12-30
    相关资源
    最近更新 更多