我正在尝试的是在Typescript中为单元测试编写单元测试,以获取现有的函数库,这些函数是使用纯JS编写的。我们所有的页面逻辑也都是纯JS。当给定错误类型作为输入时,这些函数中的一些会抛出异常。例如:使用Typescript和Jasmine对TypeError进行测试
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;
}
所以,我该怎么办WHA我希望没有任何改变的功能?有没有什么我可以在TS中配置忽略此文件仅此?
虽然这将停止TS错误,但它会通过测试失败,因为我测试它是否显式为字符串。此外,我还做了其他类似的测试,其中我正在检查对象,数组,函数等,我也遇到同样的问题。 –
将更新回答 –
我想我可以使用'任何'。这很奇怪,因为它不能反映使用TS时函数的内部工作方式,但不像我们可以开始在应用程序的任何地方使用TS,所以除了我之外,任何人都不会看到定义中的这个“错误”。重要的是,编译的JS保持不变,并继续抛出TypeError。 –