我正在通过数组进行映射并使用解构。
const newArr = arr.map(({name, age}) => `${name} ${age}`)
以上错误为:绑定(bind)元素“name”隐式具有“any”类型
错误通过添加消失:
const newArr = arr.map(({name, age}: { name: string; age: number }) => `${name} ${age}`)
问题是:我能否使用更简洁的语法来解决这个问题和/或通过接口(interface)应用所需的类型?
更新:结合以下评论和@grumbler_chester 和@TimWickstrom 的建议
这是我发现缩短语法的更简洁的方法:
解决方案:
// User.tsx
interface User {
name: string
age: number
}
const newArr = arr.map(({name, age}: User) => `${name} ${age}`)
最佳答案
如果您想保持严格的类型检查,您可以定义您的模型。
文件架构示例。
/src
/models
Person.js
Person.js
export default {
name: string,
age: number
}
在你的文件中
从“./models/Person.js”导入 Person//Person.js 的路径
const newArr = arr.map(({name, age}:Person) => `${name} ${age}`)
或者,如果您不需要严格的类型检查并希望取消警告,这应该可行:
在您的 tsconfig.json ( https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) 中,您可以添加以下内容:
来自
"noImplicitAny": false,
到
"noImplicitAny": true,
关于javascript - 数组解构的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54221816/