我是Javascript&的新手。打字稿,我以前在Java中做过面向对象的设计,我们在可能的情况下将行为放在与数据相同的类中。我不知道怎么用猫鼬做这件事。
作为一个例子,这是我在当前项目中找到的一些代码(本例简化):
// get production object from mongo
const production = await ProductionModel
.findOne({_id: id}).exec();
// update the data
if (this.isNumber(unsold)) {
production.unsold = unsold;
}
// do some data checking
if (production.unsold < 0) {
throw new Error('Unsold must be >= 0');
}
if (production.productions.length < production.unsold + production.mistakes) {
throw new Error('INCOHERENCE_BETWEEN_PRODUCTION_AND_UNSOLD');
}
// save the production object
await production.save();
在Java中,我会使用setter来验证数据,以便在一个地方(在Production对象中)完成,并且可以被所有人重复使用。 Mongoose有可能吗?例如,我想为错误创建一个setter。在这种方法中,我要验证它&gt; 0并且错误+未售出的总和不小于制作。
我可以定义,但是我有一个接口和一个模式,setter在哪里?我似乎无法将其添加到界面中,因此我必须将其作为一个类(为什么每个人都使用mongoose而不是类的接口?)。如果我将它添加到模式中,它将在模型中可用,但在我的大多数代码中,我尝试避免使用模型并坚持我的界面。现在我很困惑。 ;)
这在类型打字稿世界中是否常见?我已经搜索了这个,但是我还没有找到解决方案,所以我觉得这不是打字稿的方式。
由于