2

我正在使用 Chutzpah 测试运行程序和 Jasmine 库运行 Visual Studio 13。我想测试对 B 类有依赖关系的 A 类。A 类也对 JQuery 有依赖关系,所以我的代码如下所示:

/// <reference path="../typings/jquery/jquery.d.ts"/>
/// <reference path="../B.ts"/>

describe("A", () => {
    it("can be instaniated", () => {
        var instance = new A();
    });
});

但是当我运行测试运行程序时出现错误:错误:ReferenceError:找不到变量:$所以看起来测试运行程序无法解析 JQuery 的键入包含?

我试图添加以下代码:

/// <reference path="../jquery-2.1.1.js"/>

但是编译器抱怨只有“.ts”文件是有效的?!那么我在这里错过了什么?我认为在 TS 文件中包含 JS 文件可以吗?为什么我需要 Jasmine-tests 中的 -blocks 而不是应用程序中的其他任何地方(编译器会自动解析依赖项)?

在 TypeScript 中运行 Chutzpah + Jasmine 时是否有解决依赖关系的“标​​准方法”?

4

3 回答 3

1

从 TypeScript 调用 JavaScript 是完全有效的。

在你的情况下,你可以做两件事之一......

  1. 添加declare var $: any;
  2. 从 Definitive Typed 下载 jQuery 的定义

我推荐第二个选项,因为您将获得正确的编译器检查和自动完成功能。

您可以使用 NuGet 获取绝对类型化定义,这使得它非常简单。

此外,您需要记住在运行时包含实际脚本(并且以正确的顺序,即在您尝试使用 jQuery 之前需要出现下面的脚本标签)...

<script src="jquery.js"></script>
<script src="a-script-that-depends-on-jquery.js"></script>

参考注释纯粹是设计/编译时工具,并不能确保在程序运行时加载这些脚本。

于 2014-10-24T12:03:31.317 回答
1

标准解决方案是使用 Chuzpah 附带的 chutzpah.json-config,现在依赖项就像一个魅力! https://chutzpah.codeplex.com/wikipage?title=Chutzpah.json%20Settings%20File

于 2014-12-22T14:59:05.943 回答
0

您可以在这里使用 chutzpah_reference 而不是参考吗?

备用引用语法

TypeScript 编译器也使用引用语法来引用文件。这可能会导致问题,因为 Chutzpah 希望您引用您的实现文件,而 TypeScript 除外,您要引用您的定义文件。要缓解此问题,您可以使用参考命令的 Chutzpah 特定版本:

/// <chutzpah_reference path="someDependency.js" />

这与其他语法相同,除了 TypeScript(和 VS)会忽略它。

来自https://chutzpah.codeplex.com/wikipage?title=Chutzpah%20File%20References

于 2014-11-12T15:40:30.127 回答