JSDoc 仅描述对象值

JSDoc describe object values only

说我反对过:

const Companies = {Mazda : {revenue:50000, employees:1000},
Honda: {revenue: 102324, employees:2031}}

还有这个函数:

const totalRevenue = (companies) => 
Object.values(companies)
.map(companyObject => companyObject.revenue)
.reduce((total, companyRevenue)=> total + companyRevenue)

如何使用JSDoc来告诉函数 totalRevenue companies 对象是一个对象,它具有的每个键都具有 {revenue: Number, employees: Number}

类型的值

我对 WebStorm 能够理解的东西特别感兴趣。

您可以使用 {Object.<string, number>} 符号描述对象中的每个键。在此处查看更多语法示例:http://usejsdoc.org/tags-type.html

针对您的具体情况:

/**
 * @param {Object.<string, {revenue: number, employees: number}>} companies
 */
const totalRevenue = (companies) => 
Object.values(companies)
.map(companyObject => companyObject.revenue)
.reduce((total, companyRevenue)=> total + companyRevenue)