Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

226
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!