说,我添加了一个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
或.js
和d.ts
文件中?
答案 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文件,因为那是浏览器将执行)。