当我使用 Collection2 时在 angular2-meteor 项目中,这些代码来自 demo总是在终端给我警告:
No best common type exists among return expressions.
如何改进代码?谢谢
{
createdAt: {
type: Date,
autoValue: function() {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return {$setOnInsert: new Date()};
} else {
this.unset();
}
}
}
}
最佳答案
由于每个返回分支都需要一种日期类型,因此您必须为每个 if/else 分支返回一个日期类型,或者您可以创建一个返回两种不同类型的联合。
无论哪种情况,如果类型为 Date,您都可以为第三个条件返回 null。这在 typescript 中有效。
autoValue: function() : Date|Object {
if (this.isInsert) {
return new Date();
} else if (this.isUpsert) {
return {$setOnInsert: new Date()};
} else {
this.unset();
return null;
}
}
关于meteor - 返回表达式中不存在最佳通用类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36231334/