请你帮我使用接口好吗?这是m码:
export interface WidgetAccess {
widgets: BaseWidget[];
iswAValid: boolean;
}
export interface BaseWidget {
readonly extension: WidgetExtension;
isValid?:boolean;
areaId?: number;
}
export enum WidgetExtension {
Score = 'score',
Ranking = 'ranking'
}
export interface RankingWidgetAttributes {
rankingType?: RankingType;
demographicType?: RankingDemographicType;
demographicId?: number;
topicId?: number;
}
export interface RankingWidget extends BaseWidget {
extensionAttributes: RankingWidgetAttributes
}
if (dashboardConfiguration.widgets.filter(w=>{
w.iswAValid =true;
if(w.widgets.filter((wid)=>{
wid.isValid = true;
if(wid.extension === WidgetExtension.Score){
if(wid.extension === WidgetExtension.Ranking){
if(this.IsInvalidValidRankingWidget(wid)){
wid.isValid = false;
return wid;
}
}
}).length > 0){
return w;
}
}).length >0){
results.set('widget', false);
results.set('valid', false);
}我正在接收:'BaseWidget‘类型的参数不能分配给'RankingWidget’类型的参数。属性“extensionAttributes”在“BaseWidget”类型中缺失,但在this.IsInvalidValidRankingWidget(wid)的“RankingWidget”类型中是必需的,请帮助我好吗?
IsInvalidValidRankingWidget(widget : RankingWidget): boolean{
if((widget.areaId === undefined || widget.areaId === null)
&& (widget.extensionAttributes.topicId === undefined ||
widget.extensionAttributes.topicId === null)
){
return true;
}
return false;
}发布于 2022-10-26 14:30:05
因此,我假定错误在方法IsInvalidValidRankingWidget中。我会重写它的
IsInvalidValidRankingWidget(widget : BaseWidget): boolean{
const rankingWidget = widget as RankingWidget;
if((rankingWidget .areaId === undefined || rankingWidget .areaId === null)
&& (rankingWidget .extensionAttributes.topicId === undefined ||
rankingWidget .extensionAttributes.topicId === null)
){
return true;
}
return false;
}这应该能弥补我希望的错误。
https://stackoverflow.com/questions/74200011
复制相似问题