【发布时间】:2016-12-06 04:18:34
【问题描述】:
我正在尝试做的是在 Typescript 中为我们使用纯 JS 编写的现有函数库编写单元测试已经有一段时间了。我们所有的页面逻辑也都是纯 JS。当输入错误的类型时,其中一些函数会引发异常。例如:
Collection.pluck([{"a":1},{"a":2}], "a") // Pulls the values out of a list of objects
> [1, 2]
所以第二个参数应该是一个字符串,你想要获取值的属性名称。在 pluck 函数中,有一个类型检查来验证是否传入了一个对象数组,当失败时它会抛出一个 TypeError。
所以要编写一个测试来验证是否传入了正确类型的对象,我会像在普通 JS 中那样编写它:
expect(function(){ Collection.pluck([{"a":1},{"a":2}], 0); }).toThrowError(TypeError);
但是在我的声明文件中,我将其定义为:
declare namespace Collection {
function pluck(obj: Object, propertyName: string): any;
}
所以当我使用 TS 编写单元测试时,我得到一个编译错误,很明显:
那么如何在不改变功能的情况下做我想做的事呢?我可以在 TS 中配置一些东西来仅针对这个文件忽略它吗?
【问题讨论】:
标签: typescript jasmine