Как сказать JSDoc, что метод возвращает объект, содержащий тип класса? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть функция Node.js для создания сервера Express.

Я добавил //@ts-check к файлу, чтобы VSCode выстраивал и проверял все.

Как правильно документировать эту createServer функцию?

Я хочу показать, что он возвращает Promise, который разрешает объект, содержащий экземпляр Express (app) и число (port)

Если это анти-паттерн, было бы неплохо это знать.

//@ts-check
const express = require('express');

/**
 * @param {Number} port
 * @returns {Promise}
 */
function createServer(port) {
    return new Promise((resolve, reject) => {
        const app = express();
        server = app.listen(port, () => {
            resolve({app, port});
        });
    });
}

1 Ответ

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

Это компилируется для меня:

//@ts-check
const express = require('express');

/**
 * @param {Number} port
 * @returns {Promise<{app: import("express").Express, port: number}>}
 */
function createServer(port) {
    return new Promise((resolve, reject) => {
        const app = express();
        const server = app.listen(port, () => {
            resolve({app, port});
        });
    });
}

См. страницу документации для получения дополнительной информации.

...