Несколько строк в определении объекта JSDoc

Я фасадный модуль NodeJS, который упрощает взаимодействие с Shopify API для нужд моего бэкенда. У меня есть функция, которая возвращает обещание, которое при разрешении содержит объект с информацией о магазине (идентификатор, адрес электронной почты, страна, валюта и т. д.).

Я хочу использовать JSDoc для документирования этих свойств, чтобы упростить жизнь нашим разработчикам (мы все используем VSCode, а Intellisense выбирает определения типов JSDoc без настройки).

К сожалению, список полей, возвращаемый этим вызовом API, огромен, поэтому я получаю одну строку, охватывающую несколько столбцов, которая выглядит следующим образом:

@return {Promise<{id, name, email, domain, province, country, address1, zip, city, source, phone, latitude, longitude, primary_locale, address2, created_at, updated_at, country_code, country_name, currency, customer_email, timezone, shop_owner, money_format, weight_unit, province_code, taxes_included.....

Есть ли способ разбить это на отдельные строки и сохранить как подсветку синтаксиса VSCode в JSDoc, так и работающий Intellisense?


person dimlucas    schedule 12.04.2018    source источник


Ответы (1)


Если вы используете машинописный текст (я предполагаю, что из общего определения), я бы предложил извлечь общий тип в отдельный интерфейс:

/**
 * Return type of something
 */
interface PromiseReturnType {
    /**
     * The unique identifyer
     */
    id: number
    /**
     * JSDoc hint for the name
     */
    name: string
}

const a: Promise<PromiseReturnType> = new Promise(...)
const props = await a
props.id // you will get the hint here
person Lajos Gallay    schedule 12.04.2018
comment
Нет, в том-то и дело. Я не использую TypeScript. Это обычный JavaScript, и он мне нужен только для нескольких методов, которые возвращают объекты со многими свойствами. - person dimlucas; 12.04.2018