jbd*_*nte 5 nestjs nestjs-swagger
我对 NestJS 中的映射类型感到困惑。
文档说创建一个新类,PartialType使其验证装饰器可选。
因此,我们在验证管道中使用它,就像使用原始类一样。
我想知道这是否是派生类的正常用法。我的意思是,让创建部分更新 DTO 变得容易。
如果是这样,为什么它在 swagger 包(或 graphql)中而不是在核心的 utils 中?
因此,Nest 中实际上有 3 个mapped-types: base @nestjs/mapped-types、 in@nestjs/swagger和 中的一个@nestjs/graphql。这些包的原因是允许开发人员定义基类,然后能够定义从该基类扩展的类,但使用不同的装饰器进行验证/模式定义。这些 mixin 方法变得有用,因为它们读取类上的现有元数据,并针对生成的类对其进行修改,例如使每个属性可选,或省略关键属性,例如类password上的字段User。
该@nestjs/mapped-types包处理class-validator元class-transformer数据,是其他两个包的基础。如果元数据不存在,则元数据不会受到任何影响,并且类型是唯一更新的内容。
@nestjs/swagger更新mapped-typesswagger 架构元数据,以便您的 OpenAPI 规范正确显示。
同样,@nestjs/graphql mapped-types更新 GraphQL 架构,以便 Apollo 不会在部分更新时引发异常。
因为所有这些元数据的处理方式都不同,并且不重叠,所以采用了三种不同的处理方式。此外,有助于保持基本包较小,而不是需要其他两个包的元数据键。
| 归档时间: |
|
| 查看次数: |
4234 次 |
| 最近记录: |