javascript - 数组解构的类型

标签 javascript typescript

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

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/

相关文章:

javascript - Aurelia 的带有对象的 computedFrom

angular - inject() 必须从注入(inject)上下文中调用

typescript - 如何将异步函数添加到类型 def 文件?

javascript - 定位并换行小数点后的第 3 位数字

javascript - 查找包含特定 CSS 属性的父项

javascript - 卡住了 mootools 脚本。图像自动切换

javascript - 以 Angular 发送帖子请求不起作用

javascript - 创建新元素时如何使内部 HTML 的一部分变为粗体 - Vanilla JS

javascript - 如何在 Javascript 中动态更新字段?

reactjs - 如何将 typescript 中的目标设置为rxjs中的fromEvent()