gpt4 book ai didi

typescript - plainToClass 不会将日期转换为字符串

转载 作者:行者123 更新时间:2023-12-01 21:48:28 26 4
gpt4 key购买 nike

根据 the docs Date 对象应转换为 string:

Note, that dates will be converted to strings when you'll try to convert class object to plain object.

我的带有类转换器 0.2.3 的示例代码没有按预期工作:

class TestDate {
@Type(() => Date)
aDate!: Date;
}

const testDate = new TestDate();
testDate.aDate = new Date();
const result: any = classToPlain(testDate);
console.log(typeof result.aDate);

这会将 object 打印到控制台,但我希望是 string
我错过了什么?

最佳答案

为了扩展 TmTron 的答案,我需要创建两个变压器 - 每个方向一个。然后我使用 this technique 将它们组合成一个装饰器:

// TransformDate.ts
import { Transform } from "class-transformer";

export default function TransformDate() {
const toPlain = Transform((value) => (value as Date).toISOString(), {
toPlainOnly: true,
});

const toClass = Transform((value) => new Date(value), {
toClassOnly: true,
});

return function (target: any, key: string) {
toPlain(target, key);
toClass(target, key);
};
}

用法:

// User.ts
import TransformDate from './TransformDate';

export default class User {
id: string;
@TransformDate()
createdDate: Date;
// ...
}

关于typescript - plainToClass 不会将日期转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59899045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com