TypeScript定义文件应该包含在_references.js中吗?

时间:2014-10-03 17:38:34

标签: javascript visual-studio-2013 typescript

说,我添加了一个Nuget包jquery.TypeScript.DefinitelyTyped,是否应该添加为Scripts/_references.js的引用?如果是这样,是否可以从Scipts目录中删除jQuery或具体地说,jquery-2.1.1.js文件?也就是说,当TypeScript可用时,我是否需要普通的.js nuget包?

在更广泛的背景下,我正在思考这个过程是如何工作的,或者什么是首选的工作方式,或者在Visual Studio 2013中使用最新的更新。我发现许多关于TypeScript工具之前的方法的博客文章和教程都包含在Visual Studio中。

< edit:看起来人们可以通过Javascript库让很多其他资源,比如图片和css文件。因此,看起来,.js文件和可选的d.ts文件都是必需的。但d.ts文件是否应包含在_references.js.jsd.ts文件中?

1 个答案:

答案 0 :(得分:1)

  

说,我是否包含一个Nuget包jquery.TypeScript.DefinitelyTyped,它是否应该作为对Scripts / _references.js的引用添加?

只要您的项目中jquery.d.ts足够好。定义文件不会在任何已编译的javascript输出中结束(有关详细信息,请参阅using _references.ts)。

编辑:重申一下,因为我刚刚意识到您正在谈论_references.js而不是_references.ts ...添加.js文件并且.d.ts不是智力感知所必需的。项目中jquery.d.ts对于VS 2013中的智能感知已经足够了。

  

是否可以从Scipts目录中删除jQuery,或者特别是jquery-2.1.1.js文件?

不,不要删除您的jquery.js文件。来自DefinitelyTyped的nuget包只是一个定义文件。定义文件不提供任何功能,只是describe the shape of a library。它允许人们使用现有的JavaScript库以及类型约束的额外好处 - 而无需在TypeScript中单独重写和维护库。

例如,假设我有一个包含以下代码的JavaScript库:

function myAlert(text) {
    alert(text);
}

描述此JavaScript库的定义文件可能如下所示:

declare var myAlert: (text: string) => void;

正如您所看到的,我的定义文件中没有任何功能,因此在TypeScript中使用我的JS库都需要它们(请注意,生产代码中只需要JS文件,因为那是浏览器将执行)。