问题标签 [class-transformer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
151 浏览

node.js - 如何使用 class-transformer 中的 @Expose 装饰器公开实体中的所有属性?

我在 NodeJS 上实现的项目中使用了 class-transformer lib,但我没有找到一种方法来公开我的实体的所有属性,我尝试在类级别使用 de @Expose() decrator,但它不起作用,我希望找到类似的解决方案,因为在我的实体中逐个属性地暴露装饰器有点令人筋疲力尽。我想要的例子:

目前它只在以下情况下工作:

0 投票
1 回答
1340 浏览

typescript - 使用类转换器公开对象数组

我无法公开对象数组。即使我在UserDto

这就是我得到的,

和预期的一样

当我没有为该路由指定拦截器时,我得到了这个输出......但事实证明我正在用它公开密码输入......

我目前的方法是这样的:它没有按预期工作......我在这里错过了什么?

转换是由我在控制器上使用的一个拦截器完成的。

用途:@Serialize(UserDto)装饰器

0 投票
0 回答
30 浏览

typescript - 字典的 ts 类验证器

我有一堂课

我可以为someClass使用类转换器创建验证吗?

0 投票
1 回答
2071 浏览

typescript - NestJS DTO 类设置 class-validator 和 class-transformer 执行顺序

在使用和包描述 NestJS 中的 DTO 类时,有没有办法设置装饰器的执行顺序class-validatorclass-transformer

foo当值设置为null错误时,以下代码将失败:

需要一个字符串,但收到一个空值

即使我有一个isString装饰器,它应该检查是否确实传递了一个字符串,并且必须已经无法不将执行传递给@Transform装饰器,但它并没有失败。

0 投票
1 回答
298 浏览

javascript - Typescript 如何使用类转换器初始化混合类型数组

我有一个带有数组类型属性成员的类,数组中的一个项目可以是多种类型,例如 MetaViewDatalinked 或 MetaViewContainer,请参见下面的示例

我想使用 class-transformer ( plainToClass(MetaViewContainer, json)) 用它的属性来初始化这个类。

如果我有没有数组的类,见下文,我会使用@Type

无论属性的类型如何,该问题仅@Type被调用一次:一个类或一个类数组,从而创建一个单一类型的数组(如果属性是数组)。

任何解决问题的想法都非常感谢。

0 投票
0 回答
86 浏览

swagger - NestJs:将 swagger 和 class-transformer 与映射类型相结合

有没有办法使用mapped-typeswithswaggerclass-transformer

这里有一个问题的例子: https ://stackblitz.com/edit/nestjs-starter-demo-aq1sw2?file=src/dtos/user-descriptor.dto.ts

DTO:

项目描述符Dto

项目Dto

用户描述符Dto

用户Dto

因此,在示例中使用PickTypefrom@nestjs/mapped-types编译代码,但它不会为扩展类生成正确的招摇规范

需要使用PickTypefrom@nestjs/swagger才能正确生成 swagger 规范,但结合包中的@Type()装饰器class-transform,代码将无法正确编译:

所以问题是;有没有办法解决这个问题,mapped-types或者我是否不必扩展描述符。当前的解决方法是使用:

0 投票
0 回答
105 浏览

typescript - 即使配置了 @ValidateNested 和 @Type,NestJS ValidationPipe() 也不处理嵌套对象

使用嵌套对象时,我很难让我的 ValidationPipe 在类验证器中工作。

例如,我有 NestedObject 格式:

然后我创建了nested-object.ts 类:

然后我可以编写一个 Jest 测试用例来覆盖 ValidationPipe 中的这个嵌套对象,并验证数据。

嵌套对象.spec.ts

上述测试通过。我已经创建了基本对象,这很好用。我的问题是当我现在尝试在另一个类中验证这个对象时。新的类验证有效,但嵌套对象无效。

父对象.ts

我现在期望我的 ParentObject 将是:

然后我为 ParentObject 编写测试用例。

父对象.spec.ts

测试失败。该测试仅返回 FileName 验证,而不是应该来自 NestedObject 的 3 个 Child 验证。

验证运行并检测到 FileName 问题,但未发现 NestedObject 错误。使用 NestedObject 时我是否错误地构建了对象?我是否在测试中遗漏了一些东西来检查子节点?

0 投票
1 回答
279 浏览

swagger - NestJS 映射类型 - 嵌套对象

在 NestJS 中,我想PickType()与一个具有嵌套类属性的类一起使用。

例子:

它应该导致如下 DTO 的招摇文档:

但是以下实现不起作用:

它返回一个空的支付类属性:

所以我猜 PickType 不能处理嵌套类型。

我也试过:

但它也不起作用。

0 投票
2 回答
445 浏览

typescript - 将 Typescript 类 DTO 转换为 JSON Schema 用于 Fastify Swagger

我正在尝试将我的 DTO 类(Typescript)转换为 JSON 模式:

我尝试使用两个包 class-transformer 和 class-validator 来转换和验证 TodoDTO 类。

在控制台中,它给出的输出为todo=> [Function: TodoDTO]

预期输出:

我正在尝试使用 TodoDTO 类作为 fastify-typescript 中的 json-schema。

欢迎任何建议。

0 投票
1 回答
2987 浏览

graphql - 在 nestjs 中使用验证管道给了我一个 classTransformer.plainToclass is not a function 错误

我正在使用nestjs/graphql,并且我为 graphql 突变制作了一个 dto,其中我使用了类验证器选项,例如@IsString()and @IsBoolean()。为此我安装了class-validatorclass-transformer。但是当我进行突变时,它给了我一个闻所未闻的错误。我用谷歌搜索了它,但没有任何结果。错误是这样的:

在操场上,它向我展示了这样的: graphql playground error

我的 dto 看起来像这样:

我使用这个 dto 的突变是这样的:

我在 main.ts 中进行了验证管道设置,如下所示:

我所能得到的只是没有设置useGlobalPipes我不想在这里做的选项,突变效果很好。你能帮我解决这个问题吗?