angular - Swagger 在 Angular 12 中使用 _observableOf(null) 自动生成文件问题?

标签 angular swagger nswag angular12

所以我使用 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/

相关文章:

c# - 生成 NSwag 客户端作为构建的一部分

javascript - 获取响应不会在 Angular 2 代码中呈现

angular - 使用 ComponentResolver 动态创建 Angular 2 组件时传递输入

swagger - 带有 header 的响应 swagger-ui

recursion - 如何在 OpenAPI/Swagger 中指定递归路径

.net - 如何调用请求 header 上需要不记名 token 的 NSwag 客户端方法?

angular - Dom渲染问题ngAfterViewInit ionic 2

angular - 如何在带有变量的html模板中使用anguluar i18n?

c# - 带有名称的 Swagger 枚举

asp.net-core - 在 NSwag SwaggerUi 中实现 JwtBearer 身份验证