Я реорганизовал некоторый код, чтобы использовать класс, а не статический c объект. И я обнаружил, что все мои jsDocs ломаются.
Я хотел бы пометить методы класса типами так же, как я помечаю функции внутри объектов. Потому что копирование одного и того же 6-строчного блока в начало каждого метода, а не 1-строчного, весьма подвержено ошибкам. Почти все методы / функции в этом классе имеют одинаковую сигнатуру. Я не знаю, как заставить его повторно использовать один @type
декоратор.
import { Request, Response, Handler } from "express";
const WorkingController = {
/**
*
* @param {Request} request
* @param {Response} response
* @param {Handler} next
*/
async getAll(request, response, next) {
// intellisense works
},
/**@type {Handler}*/
async get(request, response, next) {
// intellisense works
// and it's much slimmer
}
}
class ControllerClass {
/**@type {Handler}*/
async getAll(request, response, next) {
// !!!no intellisense!!!
}
/**
*
* @param {Request} request
* @param {Response} response
* @param {Handler} next
*/
async get(request, response, next) {
// intellisense works
}
введите описание изображения здесь
Для справки, я использую vsCode версии 1.47.1 без каких-либо расширений jsdo c -specifi c.