JSDoc описывает только значения объекта - PullRequest
0 голосов
/ 26 августа 2018

Скажем, у меня такой объект:

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 поймет.

1 Ответ

0 голосов
/ 27 августа 2018

Вы можете описать каждый ключ в объекте с помощью обозначения {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)
...