说,我包括一个Nuget包jquery.TypeScript.DefinitelyTyped,是否应该添加它作为对Scripts/_references.js的引用?如果是这样,是否应该可以从Scipts目录中删除jQuery,或者确切地说是jquery-2.1.1.js文件?也就是说,如果有TypeScript包,我是否需要纯.js nuget包?

在更广泛的上下文中,我正在考虑此过程的工作方式,或者哪种工作方式是首选方式,或者应该在Visual Studio 2013中使用最新更新进行工作。在TypeScript工具包含在Visual Studio中之前,我发现许多博客文章和教程都详细介绍了方法。

.js文件,又需要一个d.ts文件。但是,应将d.ts文件包含在_references.js中,还是应该同时包含在.jsd.ts文件中?

最佳答案



只要您的项目中有jquery.d.ts就足够了。定义文件不会以任何已编译的javascript输出结尾(有关更多详细信息,请参见using _references.ts)。

编辑:只是重申一下,因为我刚刚意识到您在谈论_references.js而不是_references.ts ...为Intellisense不需要添加.js文件和.d.ts。在项目中具有jquery.d.ts足以满足VS 2013中的intellisense。



不,请不要删除您的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文件,因为这是浏览器将执行的文件)。

07-24 09:51
查看更多