javascript - 如何在 js 数组映射中声明 typescript 类型?
问题描述
我正在尝试使用 js 数组映射函数https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map进行以下映射
x = state.users.map(({id, firstName, lastName}) =>
({id, value: `${firstName} ${lastName}`}));
Binding element 'X' implicitly has an any type
但是,对于每个属性,例如 id、名字等,我都收到以下打字稿错误
如果我尝试为属性分配一个类型,如下所示:
x = state.users.map(({id: number, firstName: string, lastName: string}) =>
({id, value: `${firstName} ${lastName}`}));
这些被分配为值而不是类型。
如何正确地将类型分配给地图函数中的属性?
解决方案
你可以放任何:
x = state.users.map(({id, firstName, lastName}: any) =>
({id, value: `${firstName} ${lastName}`}));
或使用显式类型:
x = state.users.map(({id, firstName, lastName}: {id: string, firstName: string, lastName: string}) =>
({id, value: `${firstName} ${lastName}`}));
推荐阅读
- javascript - 如何从 XMLHttpRequest 获取数据到 GridView QML
- node.js - Bull 单独的进程超时,“作业停止超过允许的限制”
- incremental-build - 为什么 Shake 认为此文件已更改?
- exception - pjweekday 常量,用于多天的工作日异常
- php - MySQL - 将 csv 文件导入现有数据库
- google-cloud-platform - Vision API WEB_DETECTION 中输出的站点过滤
- google-apps-script - 如何自动从 Google 表格的上一行复制公式?
- google-chrome - 在每次搜索/每个页面自动加载时从谷歌图像和搜索引擎中删除安全搜索按钮
- java - 无法将实例变量值发送到 sendkeys() 方法
- python - textblob .detect_language() 函数不起作用