角度-类型'Void []'无法分配给类型'FilterExpression []'

时间:2020-08-19 19:50:22

标签: angular typescript rxjs

我试图将这两个语句都包含在此映射中,一个可以获取我需要的运算符,另一个可以通过推入值来实现。我很困惑为什么我会收到此特定错误。它在“ this.DataSourceFilters”上出错了

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
        );
     }

1 个答案:

答案 0 :(得分:1)

在包含在map中的函数的末尾,您可以添加return fe

我看到人们经常对lambda感到困惑。如果您正在执行类似map(filter => new FilterExpression(this.logicalOperator))的操作,则此语法将自动返回过滤器表达式。由于您需要执行额外的步骤,因此需要显式返回一些内容。