我有一个类来获取JSON对象,并将它们转换为我想要的类。代码在下面。
import {plainToClass} from "class-transformer";
import UserDto from "../../auth/dto/user.dto";
class ConvertJson {
userData(data) {
return plainToClass(UserDto, data);
}
}当我想将类转换为泛型类时
import {plainToClass} from "class-transformer";
import UserDto from "../../auth/dto/user.dto";
class ConvertJson<T> {
userData(data) {
return plainToClass(T, data);
}
}我知道这个错误
T仅指类型,但在这里用作值
发布于 2022-06-15 09:29:23
在调整代码之后,我发现类型记录泛型与C#或其他语言非常不同,所以我将代码转换为这个,所以它有一个泛型的氛围,但没有语法。
import {plainToClass} from "class-transformer";
interface IClass {
new (...args : any[])
}
class ConvertJson {
constructor(private dto : IClass) {
}
userData(data) {
return plainToClass(this.dto, data);
}
}我之所以使用IClass而不是任何类型,是因为我希望确保其他队友使用类,而不是其他类型。
发布于 2022-10-21 17:50:27
从Milad的评论中提升
class-transformer提供了一些泛型类来执行与他介绍的相同的操作。
import { plainToClass, ClassConstructor } from "class-transformer";
class ConvertJson {
userData<TargetClass>(data: unknown, dtoClass: ClassConstructor<TargetClass>) {
return plainToClass(dtoClass, data);
}
}我的class-transformer版本是0.5.1
✍备注:
plainToClasss被废弃为❌
使用plainToInstance代替✅(相同)
发布于 2022-06-14 13:17:38
我想你想要做的是按照输入类型转换输出。
class ConvertJson<T> {
userData(data) {
return <T>plainToClass(data);
}
}https://stackoverflow.com/questions/72617572
复制相似问题