【问题标题】:Should TypeScript definition files be included in _references.js?TypeScript 定义文件是否应该包含在 _references.js 中?
【发布时间】:2014-10-03 17:38:34
【问题描述】:

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

在更广泛的背景下,我正在考虑这个过程是如何工作的,或者什么可能是首选的工作方式,或者在最新更新的 Visual Studio 2013 中应该如何工作。我发现的许多博客文章和教程都详细介绍了在 Visual Studio 中包含 TypeScript 工具之前的方法。

.js 文件和可选的d.ts 文件。但是d.ts 文件应该包含在_references.js 中还是应该同时包含在.js 和d.ts 文件中?

【问题讨论】:

    标签: javascript visual-studio-2013 typescript


    【解决方案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 文件。 DefinitiveTyped 的 nuget 包只是一个 definition 文件。定义文件不提供任何功能,只是describe the shape of a library。它允许人们使用现有的 JavaScript 库以及类型约束的额外好处,而无需在 TypeScript 中单独重写和维护库。

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

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

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

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

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

    【讨论】:

    • 谢谢!这是相当有启发性的。我知道.ts 文件。出于某种原因,我没有连接(或打开).d.ts 文件,并且对所有约定都有些不知所措。
    • @Veksi 这很酷,每个人都会在某个时候学习它,我很高兴它有所帮助。我认为文档不是很清楚。
    猜你喜欢
    • 2016-10-18
    • 2021-05-03
    • 2021-06-19
    • 2021-08-29
    • 2013-03-18
    • 2017-11-25
    • 1970-01-01
    • 2022-01-09
    • 2011-05-08
    相关资源
    最近更新 更多