Как переопределить / заменить свойства jsdo c? - PullRequest
1 голос
/ 06 марта 2020

Я создаю обработчик маршрута express и хочу расширить интерфейс express.Request, чтобы документировать, какими должны быть параметры и параметры запроса. Я хотел бы, чтобы jsdo c работал с VsCode intellisense.

Сначала я импортирую Request и Response из express.

/**
 * @typedef {import('express').Request} Request
 * @typedef {import('express').Response} Response
 */

. Затем я создаю 2 типа для params и query.

/**
 * @typedef {{
 *   module: string
 * }} params
 */

/**
 * @typedef {{
 *   field: string
 *   skip: number
 *   limit: number
 * }} query
 */

В качестве параметра моей функции я расширяю express Request и переопределяю свои query и params.

/**
 * @param {Request & {params: params, query: query}} req
 * @param {Response} res
 */
async function search(req, res)

Вот где моя проблема возникает ... Я получаю intellisense только для params, но не для query.

Скриншот req.parmas intellisense Screenshot of req.params intellisense

Снимок экрана req.query intellisense enter image description here

При наведении курсора мыши на параметр req я получаю следующее значение intellisense.

req intellisense

Правильно ли я использую функцию расширения? Как я могу расширить тип Request и получить intellisense для query и params?

...