首页 > 解决方案 > 角度 12 中带有 _observableOf(null) 的 Swagger 自动生成的文件问题?

问题描述

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

return _observableOf<MyClassData>(<any>null);

...现在使用相同的 nswag json 文件,它会以这种方式生成:

return _observableOf(null);

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

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

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

解决方案 2)打开/编辑 angular.json,在原理图/角度:应用程序中,严格:将其从 true 更改为 false,当然它会停止失败,但我更喜欢保持代码严格。

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

谢谢。

标签: angularswaggernswagangular12

解决方案


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

nswag 生成的文件还给了我一个编译错误,说 _observableOf 已被贬低,并且:

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

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

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


推荐阅读