我的设置
- 打字稿
- 猫鼬
- 类型鹅
我有一堂课时间码
export class Timecode {
constructor(private timestamp: string) {}
getAsMilliseconds(): number {
throw new Error('Not implemented');
}
add(timecode: Timecode): Timecode {
throw new Error('Not implemented');
}
toString(): string {
return this.timestamp;
}
}
和一个实体剪辑
import { prop } from '@typegoose/typegoose';
export class Clip extends BaseEntity {
@prop({ required: true })
name: string;
@prop({ required: true })
description: string;
@prop({
required: true,
type: Timecode,
})
startTimecode: Timecode;
}
我的问题
时间码可以很容易地序列化为一个字符串,只需保存它的时间戳,例如00:00:12:34
我希望能够Timecode
在我的实体上拥有属性,然后当我保存到 mongo 时让它们自动序列化为字符串。此外,它们应该在加载时转换回 Timecode 实例。
这是一个例子
const clip = new Clip();
clip.name = "My Clip"
clip.description = "My Dessciption"
clip.startTimecode = new Timecode("00:00:12:34")
const savedClip = await ClipModel.create(clip)
const loadedClip = await ClipModel.findById(savedClip._id)
console.log(loadedClip.startTimecode.getAsMilliseconds()) //should work as startTimecode is an instance of Timecode
所以我希望猫鼬在我保存具有类型属性的实体Typecode
并将其转换为字符串然后将其反转为Typecode
加载时的实例时注意到。
理想情况下,我可以在一个地方配置它,而不是在我声明Typecode
属性的每个地方。
这可能吗?我该怎么做?
谢谢