Angular 角型';无效[]和#x27;不可分配给类型';FilterExpression[]和#x27;
我试图在这个映射中包含这两个语句,一个可以得到我需要的操作符,另一个可以推送值。我很困惑为什么会出现这个特定的错误。它在“this.DataSourceFilters”上出错Angular 角型';无效[]和#x27;不可分配给类型';FilterExpression[]和#x27;,angular,typescript,rxjs,Angular,Typescript,Rxjs,我试图在这个映射中包含这两个语句,一个可以得到我需要的操作符,另一个可以推送值。我很困惑为什么会出现这个特定的错误。它在“this.DataSourceFilters”上出错 类型“void[]”不能分配给类型“FilterExpression[]”。 类型“void”不可分配给类型“FilterExpression”。ts(2322 数据源过滤器:数组; 构造函数(filterDefinitionModel?:filterDefinitionModel){ if(filterDefinitio
类型“void[]”不能分配给类型“FilterExpression[]”。
类型“void”不可分配给类型“FilterExpression”。ts(2322
数据源过滤器:数组;
构造函数(filterDefinitionModel?:filterDefinitionModel){
if(filterDefinitionModel.DataSourceFilters){
this.DataSourceFilters=filterDefinitionModel.DataSourceFilters.map(
(过滤器)=>{
const fe=新的FilterExpression(this.logicalOperator);
fe.FilterOptions.push(新的FilterOption(filter.PropertyPath,filter.FilterOperation,filter.Values));
}
//f.PropertyPath,f.FilterOperation,f.Values
);
}
在map中包含的函数末尾,可以添加返回fe
我经常看到人们对lambda感到困惑,如果你在做
map(filter=>newfiltereexpression(this.logicalOperator))
,此语法将自动返回筛选表达式。由于需要执行额外的步骤,因此需要显式返回某些内容。传递到map
的函数不返回任何内容,因此您将得到一个void
数组。只需返回此中预期的数据类型。DataSourceFilters
或d不要使用map
。
Type 'void[]' is not assignable to type 'FilterExpression[]'.
Type 'void' is not assignable to type 'FilterExpression'.ts(2322
DataSourceFilters: Array<FilterExpression>;
constructor(filterDefinitionModel?: FilterDefinitionModel) {
if (filterDefinitionModel.DataSourceFilters) {
this.DataSourceFilters = filterDefinitionModel.DataSourceFilters.map(
(filter) => {
const fe = new FilterExpression(this.logicalOperator);
fe.FilterOptions.push(new FilterOption(filter.PropertyPath, filter.FilterOperation, filter.Values));
}
// f.PropertyPath, f.FilterOperation, f.Values
);
}