Swagger 自动生成的文件在 Angular 12 中出现 _observableOf(null) 问题?

Yog*_*rtu 5 swagger nswag angular angular12

所以我使用 swagger 和 Nswag 很长一段时间,我可以看到自动生成的方法用于生成这样的行以作为默认值退出:

return _observableOf<MyClassData>(<any>null);
Run Code Online (Sandbox Code Playgroud)

...现在使用相同的 nswag json 文件,它生成如下:

return _observableOf(null);
Run Code Online (Sandbox Code Playgroud)

这似乎对 Angular 9 有效,因为它不支持 strict=true,但现在在我的 Angular 11/12 项目中,这会引发一个错误:

错误 TS2322:类型“Observable”无法分配给类型“Observable”。类型“null”不可分配给类型“MyClassData”。

解决方案1)手动替换自动生成的文件,添加:return _observableOf < MyClassData >(< any > null); 这很疯狂,因为每次生成文件时,我都会丢失更改。

解决方案2)打开/编辑angular.json,在schematics/angular:application中,严格:将其从true更改为false,当然它会停止失败,但我非常希望保持代码严格。

这里最好的解决方案是什么?有没有一种方法可以指定 NSWAG 应该像过去一样继续返回?

谢谢。

小智 5

我的项目也有类似的问题。我升级了大部分软件包,包括Angular到 v12,rxjs到 v7。

nswag 生成的文件还给了我一个编译错误,指出 _observableOf 已被废弃,并且:

类型“Observable<object> 不可分配给类型“Observable< object []>”

对于所有返回数组的端点。

我认为这是因为 nswag 与 rxjs 7+ 不兼容(尚)。将 rxjs 降级到 6.6.7 对我有用。