我在以下 TypeScript 代码中收到 Eslint 警告:
“function.eslint(@typescript-eslint/explicit-function-return-type) 上缺少返回类型”警告引用了映射函数中的 lambda。
private headerSelectionChanged(event): void {
const { checked } = event.syntheticEvent.target;
const newGridData = this.props.gridData.map(item => Object.assign(item, { selected: checked }));
this.updateGridData(newGridData);
}
出了什么问题?我该如何修复它?
最佳答案
显示警告是因为您的映射函数未指定返回类型。您必须像这样指定返回类型:
const newGridData = this.props.gridData.map((item): any => Object.assign(item, { selected: checked }));
请记住 Object.assign
修改目标而不是复制它。如果您不想修改 this.props.gridData
,则应交换 item
和 { selected: selected }
const newGridData = this.props.gridData.map((item): any => Object.assign({ selected: checked }, item));
或使用较新的 object spread operator ,如果有的话:
const newGridData = this.props.gridData.map((item): any => ({ ...item, selected: checked }));
关于typescript - array.map 中缺少返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56144677/