Angular Jasmine - 'string' 类型的参数不可分配给 'never' 类型的参数,打字稿错误

Angular Jasmine - Argument of type 'string' is not assignable to parameter of type 'never' error in typescript

我正在 Angular 中使用 Jasmine 3.6.0 和 typescript 4.1.5 在 tsconfig.json 文件

中使用“strict”: false 编写测试用例

我想监视名为 'close' 的组件方法,并按照我在下面编写的代码

的语法
let spy = spyOn<MyComponent>(component,'close');

它工作正常,但在将源代码复制到不同的文件夹后,我安装了节点模块,它开始出现以下错误

''string' 类型的参数不可分配给 'never' 类型的参数'

我知道这个问题被问过很多次,我尝试了这些解决方案,但我遇到了同样的错误。 我不明白实际问题是什么,因为我的严格模式也关闭了。

我解决了问题

let spy = spyOn<MyComponent>(component,'close' as never)

截至目前,它正在运行并且没有出现任何错误,但我不知道这是否正确

let spy = spyOn<MyComponent, any>(component,'close')

我现在遇到了,它发生了,因为我尝试 spyOn() 的方法是私有的。

您必须将其更改为 public 才能进行单元测试并跳过此错误。