Javascript 数组分解的类型

Javascript 数组分解的类型,javascript,typescript,Javascript,Typescript,我正在通过一个数组进行映射并使用解构 const newArr=arr.map(({name,age})=>`${name}${age}`) 上述错误如下:绑定元素“name”隐式地具有“any”类型 添加以下内容可消除错误: 问题是:我可以用更简洁的语法来解决这个问题和/或通过接口应用所需的类型吗 更新:结合以下评论和@grumbler\u chester和@TimWickstrom的建议 这是我发现的缩短语法的更简洁的方法: 解决方案: //User.tsx 界面用户{ 名称:stri

我正在通过一个数组进行映射并使用解构

const newArr=arr.map(({name,age})=>`${name}${age}`)
上述错误如下:绑定元素“name”隐式地具有“any”类型

添加以下内容可消除错误:

问题是:我可以用更简洁的语法来解决这个问题和/或通过接口应用所需的类型吗


更新:结合以下评论和@grumbler\u chester和@TimWickstrom的建议

这是我发现的缩短语法的更简洁的方法:

解决方案:

//User.tsx
界面用户{
名称:string
年龄:数目
}
const newArr=arr.map(({name,age}:User)=>`${name}${age}`)

如果要保持严格的类型检查,可以定义模型

文件架构示例

/src
  /models
    Person.js
Person.js

export default {
  name: string,
  age: number
}
const newArr = arr.map(({name, age}:Person) => `${name} ${age}`)
在你的档案里

从“./models/Person.js”导入Person//到Person.js的路径

const newArr = arr.map(({name, age}:Person) => `${name} ${age}`)
或者,如果您不需要严格的类型检查,并且希望取消显示警告,则应使用以下方法:

在tsconfig.json()中,可以添加以下内容:


您可以将类型注释添加到
arr
变量中,TS将推断已破坏字段的类型

请参阅(注意
noImplicitAny
在选项中为
true
,映射为
arr0
时出错,映射为
arr1
时无错误)


请检查示例背后的理论。

相关github问题:变量是否为
arr
类型化?@grumbler\u chester这是怎么回事?@Jonca33是否有一些类型注释,如:type User{name:string;age:number;}const arr:User[]=…@grumbler\u chester我没有向
arr
添加任何类型。建议?@Jonca33如果没有代码,我无法为您提供准确的答案,但通常情况下,此类错误的原因是TS在“上面”某处丢失/无法推断
arr
的类型时发生冲突。事实上,我感谢您的洞察力,这使我找到了解决方案,请参阅我的更新问题。
"noImplicitAny": false,
"noImplicitAny": true,