Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

229
Vistas
clase jsdoc con @lends (o similar) no reconocida por intellisense

Actualmente estoy trabajando en un proyecto que se escribió antes de que existieran las clases de es6 y, por lo tanto, utiliza una función de creación de clases para todas sus clases.

Estoy usando VSCode y pensé, sería bueno usar algo de IntelliSense, para que las instancias muestren sus métodos, los parámetros y los tipos de devolución, y así sucesivamente, por lo que los documenté usando JSDoc.

Rápidamente descubrí que JSDoc permite la documentación de clases previas a es6. Los documentos casi incluyen mi problema, consulte la documentación de la etiqueta jsdoc: @lends . El ejemplo dado muestra lo siguiente:

 /** @class */ var Person = makeClass( /** @lends Person.prototype */ { /** * Create a `Person` instance. * @param {string} name - The person's name. */ initialize: function(name) { this.name = name; }, /** * Say something. * @param {string} message - The message to say. * @returns {string} The complete message. */ say: function(message) { return this.name + " says: " + message; } } );

Sin embargo, cuando copio y pego este ejemplo en un archivo javascript vacío y agrego otra línea debajo, como

 var p = new Person(""); p.say("")

Mi editor, VSCode, no hace sugerencias inteligentes para p.digamos, el mensaje de parámetro (que no se reconoce en absoluto) y p y var Person se muestran como type: any . Habría esperado que p tuviera el tipo Persona y que intellisense reconozca la clase con sus métodos. ¿Por qué no es este el caso, qué estoy haciendo mal?

Ya intenté agregar @type Person o algunas otras etiquetas, pero me gustaría evitar tener un archivo separado como .d.ts solo para escribir sugerencias o separar demasiado la "documentación" y el código. La documentación de una función foobar(foo, bar){ ... } con jsdoc funciona y se muestra la sugerencia de tipo, pero mantener la información de tipo después de las asignaciones de variables parece ser un problema.

(Obviamente: cambiar todo el proyecto a una versión más nueva de javascript o incluso mecanografiado no es una opción).

¡Gracias por cualquier ayuda de antemano!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

A quien encuentre esta pregunta:
El principal culpable parece haber sido Visual Studio Code. Usando el IDE Webstorm de IntelliJ, se muestran los trabajos de notación @lends y la finalización del nombre, incluidas las sugerencias de tipo. Si usted, querido lector, tiene el mismo problema y está usando VSCode, pruebe con otro IDE, es posible que funcione...

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda