En TypeScript, solo harías esto:
class Test { [key: string]: whatever }Lo que le permite acceder a los nombres de las propiedades calculadas así...
class Test { getProp(key) { return this[key] } } ... sin recibir Element implicitly has an 'any' type because type 'Test' has no index signature.
No puedo entender cómo lograr el equivalente con JSDoc. ¿Alguien tuvo suerte con esto?
Para un solo método, es posible hacer esto con la etiqueta @this :
class Test { /** * @this {{[k: string]: string}} * @param {string} key */ getProp(key) { return this[key] } } Aún no se admite hacerlo para toda la clase. Hay una solicitud de función abierta ( TypeScript#48096 ) que se encuentra actualmente en el hito de TS 4.7.1. Sin embargo, dada la etiqueta Needs Proposal , alguien debe proponer una etiqueta + sintaxis JSDoc, o probablemente terminará fuera de ese hito.