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,