Foo*_*Bar 5 javascript typescript class-transformer
我尝试定义一个像这样的自定义 getter:
import { Expose } from 'class-transformer';
export class MyDTOResponse {
@Expose()
id: string;
@Expose()
name: string;
@Expose()
get thisIsATest(): string {
return 'yolo';
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我改造它的方式:
plainToClass(MyDTOResponse, MyRawDataObject, {
excludeExtraneousValues: true,
});
Run Code Online (Sandbox Code Playgroud)
如此处文档中所述:https://github.com/typestack/class-transformer#exusing-getters-and-method-return-values
然而,得到的回应却只有:
{
"id": "f8c213c7-5853-4d01-b424-cb0349a6c580",
"name": "Clean the kitchen!"
}
Run Code Online (Sandbox Code Playgroud)
我不确定我到底做错了什么,但我缺少“thisIsATest”属性。
小智 1
plainToClass将返回一个实例。如果您使用console.log此实例,则看不到“thisIsATest”属性。您可以尝试以下代码:
const res = plainToClass(MyDTOResponse, MyRawDataObject, {
excludeExtraneousValues: true,
});
console.log(res.thisIsATest); // yolo
console.log(instanceToPlain(res))
// {
// id: 'f8c213c7-5853-4d01-b424-cb0349a6c580',
// name: 'Clean the kitchen!',
// thisIsATest: 'yolo'
// }
Run Code Online (Sandbox Code Playgroud)
顺便说一句,plainToClass已弃用,请改用该plainToInstance方法。