所以我使用 swagger 和 Nswag 很长时间了,我可以看到自动生成的方法用于生成这样的行以作为默认值退出:
return _observableOf<MyClassData>(<any>null);
...现在使用相同的 nswag json 文件,它以这种方式生成:return _observableOf(null);
这似乎对 Angular 9 有效,因为它不支持 strict=true,但是现在对于我的 Angular 11/12 项目,这会引发一个错误,指出:error TS2322: Type 'Observable' is not assignable to type 'Observable'. Type 'null' is not assignable to type 'MyClassData'.
解决方案 1)
通过添加手动替换自动生成的文件: return _observableOf < MyClassData >(< any > null); 这很疯狂,因为每次生成文件时,我都会丢失更改。
解决方案2)
打开/编辑angular.json,在schematics/angular:application 中,strict: 将其从true 更改为false,当然它会停止失败,但我更愿意将代码保持为严格。
这里最好的解决方案是什么?
有没有办法向 NSWAG 指定应该像过去那样继续返回?
谢谢。
最佳答案
我的项目也有类似的问题。我升级了大部分软件包,包括 Angular 到 v12 和 rxjs 到 v7。
nswag 生成的文件还给了我一个编译错误,说 _observableOf 已被弃用,并且:
Type 'Observable<object>' is not assignable to type 'Observable<object[]>'
对于所有返回数组的端点。
我认为这是因为 nswag 与 rxjs 7+ 不兼容(还)。 将 rxjs 降级到 6.6.7 对我有用。
关于angular - Swagger 在 Angular 12 中使用 _observableOf(null) 自动生成文件问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68613571/