【问题标题】:How do I return multiple values in Angular2 Typescript如何在 Angular2 Typescript 中返回多个值
【发布时间】:2017-12-23 05:10:16
【问题描述】:

在 md-table 中实现过滤器和分页功能时,我试图在 typescript 中返回多个值。当我运行代码时,我收到错误检测到无法访问的代码。

 return Observable.merge(...displayPatientDataChanges).map(() => {
   const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
   const data = this._patientDatabase.data.slice();
   return data.splice(startIndex, this._paginator.pageSize);

 // I get the error here on the second return function
   return this._patientDatabase.data.slice().filter((item: Patient) => {
     let searchStr = (item.firstname + item.lastname).toLowerCase();
     return searchStr.indexOf(this.filter.toLowerCase()) != -1;
   });

 });
}

disconnect() {}

【问题讨论】:

    标签: angular filter pagination angular-material


    【解决方案1】:

    那是因为方法在到达后结束:

    return data.splice(startIndex, this._paginator.pageSize);
    

    这意味着永远无法到达以下代码,因此出现错误Unreachable code detected

    return this._patientDatabase.data.slice().filter((item: Patient) => {
         let searchStr = (item.firstname + item.lastname).toLowerCase();
         return searchStr.indexOf(this.filter.toLowerCase()) != -1;
    });
    

    如果你想同时返回两个值,你需要返回一个数组或对象:

    const something1 = data.splice(startIndex, this._paginator.pageSize);
    const something2 = this._patientDatabase.data.slice().filter((item: Patient) => {
         let searchStr = (item.firstname + item.lastname).toLowerCase();
         return searchStr.indexOf(this.filter.toLowerCase()) != -1;
    });
    return [something1, something2] // or {something1, something2}
    

    【讨论】:

    • 如果我想同时退货怎么办?我该怎么做?
    • @mots 我已经更新了关于如何返回多个值的答案
    • 有什么方法可以在一个班轮调用中分配两个返回值?
    • @Stephane const [val1, val2] = [1,2],文档:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
    • 我注意到我们也可以像const [ val1, val2 ]: [string, number] = [ 'Stephane', 10 ];那样添加类型
    猜你喜欢
    • 2017-05-28
    • 2017-03-08
    • 2014-05-15
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多