如何在 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 我已经更新了关于如何返回多个值的答案 有什么方法可以在一个班轮调用中分配两个返回值? @Stephaneconst [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 对象变量