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 对我有用。
| 归档时间: |
|
| 查看次数: |
1317 次 |
| 最近记录: |