Chutzpah Typescript编译器支持…任何参数

Chutzpah Typescript编译器支持…任何参数,typescript,chutzpah,Typescript,Chutzpah,我在TeamCity安装中使用Chutzpah 3.2.1命令行来执行一些Typescript单元测试 当它尝试运行时,我遇到此错误: [JavaScript Tests] Error: Error in [JavaScript runtime error]: [11:31:03][JavaScript Tests] C:/TeamCity/buildAgent/work/fd0bdc3857f5e4c1/Claims/Web/Scripts/app/search/SearchControlle

我在TeamCity安装中使用Chutzpah 3.2.1命令行来执行一些Typescript单元测试

当它尝试运行时,我遇到此错误:

[JavaScript Tests] Error: Error in [JavaScript runtime error]:
[11:31:03][JavaScript Tests] C:/TeamCity/buildAgent/work/fd0bdc3857f5e4c1/Claims/Web/Scripts/app/search/SearchController.ts(77,16): error TS2082: Supplied parameters do not match any signature of call target:
[11:31:03][JavaScript Tests]    Call signatures of types '(event: ng.IAngularEvent, element: JQuery) => void' and '(event: ng.IAngularEvent, ...args: any[]) => any' are incompatible:
这段有问题的代码是:

 $scope.$on(EventConstants.TYPEAHEAD_SELECTED, (event: ng.IAngularEvent, suggestion: FieldTypeaheadSuggestion) => {
        this.search(false);
    });
角d.ts中$on的定义为:

$on(name: string, listener: (event: IAngularEvent, ...args: any[]) => any): Function;
这段代码在VS2013 IDE中编译得很好(使用VS中现在内置的Typescript支持)

我在其他地方读到过一些编译器在这里抱怨,因为d.ts使用
…args:any[]
意味着参数是可选的,这与传递到
$on
函数中的函数签名冲突,其中需要
建议


但是,IDE并不介意这个问题,所以有没有办法让Chutzpah编译器以同样的方式工作?

您应该使用Chutzpah的编译设置(请在此处阅读:)。这是在Chutzpah的最新版本中发布的,它允许您告诉Chutzpah如何将代码编译成JS(或者假设JS是在外部编译的,在哪里可以找到它)


这是使用TypeScript和Chutzpah的推荐方法。

在这里检查Igorbek的技巧

这似乎更像是一个类型脚本问题,而不是一个愚蠢的问题

试试这个

$scope.$on(EventConstants.TYPEAHEAD_SELECTED, (event: ng.IAngularEvent, suggestion?: FieldTypeaheadSuggestion) => {
    this.search(false);
});

签名需要0、1或更多参数。您的示例只指定了一个参数。使用“?”指定以下可选参数:


$scope.$on('eventName',(事件:ng.IAngularEvent,arg1?,arg2?)

Chutzpah.json文件应该放在哪里?它是否与Chutzpah.console.exe放在同一个文件夹中?我那里没有。如果没有,使用什么默认值?如果引入配置文件,是否需要指定其中的所有默认值?请阅读文档并查看示例。简言之,Chutzpah.json文件可以放在director中y您的测试在它们上面的任何文件夹中。
...args: any[]