如何告诉JSDoc方法返回一个包含类类型的对象?

时间:2018-08-28 14:56:10

标签: node.js typescript visual-studio-code jsdoc ts-check

我有一个Node.js函数来创建Express服务器。

我已将//@ts-check添加到文件中,以便VSCode减少并对所有内容进行类型检查。

记录此createServer函数的正确方法是什么?

我想证明它返回一个Promise,该Promise解析包含Express实例(app)和Number(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 :(得分:1)

这为我编译:

//@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});
        });
    });
}

有关更多信息,请参见the documentation page