Tengo una función que toma una matriz en un objeto como parámetro. Calcula y devuelve uno de los valores de esa matriz. ¿Hay alguna manera de documentar dinámicamente el tipo de retorno de uno de los valores de la matriz?
Decir
function random(params) { // calculate int random = 2; // this will change return params.values[random]; } random({ prop1: 'lorem ipsum', prop2: 3.444, values: [ 'value1', 'value2', 'value3', 'value4' ] })
Así que el jsdoc aleatorio debería ser dinámico pero debería parecerse a
/** * Some radom generator. * @param {object} props - Function parameters. * @param {string} props.prop1 - Some prop1. * @param {number} props.prop1 - Some prop2. * @param {string[]} props.values - List of values to pick. * @returns {('value1'|'value2'|'value3'|'value4')} */
El último retorno debería ser de alguna manera dinámico.
Lo siguiente haría el truco:
/** * Some random generator. * @template {string} T * @param {object} params - Function parameters. * @param {string} params.prop1 - Some prop1. * @param {number} params.prop2 - Some prop2. * @param {T[]} params.values - List of values to pick. * @returns {T} */