是否有更简洁/更优雅的方式将day
作为适当的类型,而不是(<{P: string}>day).P
而不是在我收到{{1}的情况下诉诸any
类型来自underscore.js的对象通过findWhere命令?
如果我只是写day
,则会导致此错误:
let period of day.P
TS2339:Property 'P' does not exist on type '{}'.
答案 0 :(得分:2)
使用界面
interface Day {
P: string;
}
// in the class
public availabilityDays: Day[];
如果问题在_.findWhere
中,可能会将返回的结果声明为对象(我没有检查过),那么您可以使用as
语法
let day: Day = _.findWhere(this.availabilityDays, condition) as Day;
答案 1 :(得分:0)
因为看起来你唯一对这个任务的“P”成员感兴趣。我个人会建议在day数组上进行映射并在开始for循环之前进行转换以获得可读性以及关注点的分离(明确区分你的Moment实体和工作数据)。