[英]Type declaration in TypeScript for loop
有沒有一種更整潔/更優雅的方法來將day
為適當的類型,而不是(<{P: string}>day).P
而在這種情況下,我不通過any
類型從我通過underscore.js接收day
對象findWhere命令?
如果我只寫let period of day.P
則會導致此錯誤:
TS2339:Property 'P' does not exist on type '{}'.
let day = _.findWhere(this.availabilityDays, {D: moment($scope.model.BookDate).format('YYYY-MM-DD')});
this.$scope.BookingPeriods.splice(0);
for (let period of (<{P: string}>day).P) {
this.$scope.BookingPeriods.push(period);
}
使用界面
interface Day {
P: string;
}
// in the class
public availabilityDays: Day[];
如果問題出在_.findWhere
,它可能_.findWhere
返回的結果聲明為一個對象(我沒有檢查過),則可以使用as
語法_.findWhere
結果
let day: Day = _.findWhere(this.availabilityDays, condition) as Day;
由於似乎您僅對此任務的“ P”成員感興趣。 我個人建議在開始for循環之前為整個可讀性以及關注點分離(在Moment實體和工作數據之間有明顯區別)開始之前,映射整個Day數組並進行轉換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.