如何在 Angular2 Typescript 中返回多个值

Posted

技术标签:

【中文标题】如何在 Angular2 Typescript 中返回多个值【英文标题】:How do I return multiple values in 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() 

【问题讨论】:

【参考方案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 ];那样添加类型

以上是关于如何在 Angular2 Typescript 中返回多个值的主要内容,如果未能解决你的问题,请参考以下文章

渲染所有组件后,如何在 Angular2 中运行 TypeScript 代码?

如何在 Visual Studio Code 中调试 Angular2 TypeScript 应用程序?

Angular2,Typescript:如何在每页显示一个元素的数组中检查单选按钮?

在 Angular2 中访问 Typescript 对象变量

如何从 Angular2(Typescript)中的 Json 数组中获取值的总和

Angular2,TypeScript,如何读取/绑定属性值到组件类(在 ngOnInit 中未定义)[重复]