作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据 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/
我有一个为实例分配属性的构造函数: class BaseModel { constructor (args = {}) { for (let key in args) {
根据 the docs Date 对象应转换为 string: Note, that dates will be converted to strings when you'll try to con
我是一名优秀的程序员,十分优秀!