Tengo un controlador a continuación, que es un método de orden superior,
const CourseController = { createCourse: ({ CourseService }) => async (httpRequest) => { const course = await CourseService.doCreateCourse(httpRequest.body); return { statusCode: 201, body: { data: course } }; }, }A continuación se muestra mi definición de tipo para el tipo de retorno del controlador.
/** * ControllerResponse * @typedef {Object} ControllerResponse * @property {Number} statusCode * @property {{ data: (Object | Array )}} body */ ¿Cómo defino el tipo para createCourse para que devuelva el tipo ControllerResponse ?
Actualizar:
Intenté algo como a continuación. Funciona, pero el tipo de retorno del controlador no parece correcto. Cuando lo marco asíncrono,
@returns {async function(ExpressRequest): Promise.<ControllerResponse> }Pierdo la definición de tipo.
/** * Handle creating a new course. * @async * @method * @param {{ CourseService }} requestBody - Request Body * @returns {function(ExpressRequest): Promise.<ControllerResponse> } Course */Parece que funciona ahora,
/** * Handle creating a new course. * @async * @method * @param {{ CourseService }} requestBody - Request Body * @returns {Promise<function(ExpressRequest): Promise.<ControllerResponse>> } */