microsoft / microsoft/TypeScript
JSDoc : add support for @method (and @property)
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 2g 4h
- PR unite (30g)
- 132
Descrizione
Search Terms
- JSDoc
@method@property- support
Suggestion
It would be great to add support for @method and @property (and maybe @memberof) now that annotations are on their way.
I found bug #15715 that only talks about @property support but I think this makes more sense to see those in a same light because they should have a very common implementation and moreover they meet the same goals as a whole. At least I think and I explain my reasoning about this below!
Use Cases
I have functions that do add methods and/or getters on a class right now, waiting for annotations to get their way in JS/TS. But let's say this: when annotations are here, those 2 flags support will be needed anyway (or at least I think so: I don't see how to make IntelliSense work without those)!
/**
* Some class
* @class
*/
class Test {
/* whatever */
}
// this adds a #foo() method on the class prototype as well as a #bar getter(/setter)
someMethodAddingABehavior(Test, ...params);
And tomorrow with annotations:
/**
* Some class
* @class
*/
@someAnnotationAddingABehavior(...params)
class Test {
/* whatever */
}
Examples
I'd like to be able to document those doing something like:
/**
* What foo is doing is great!
* @method foo
* @param {string} testParam some testing parameter
* @returns {string} some random string
* @memberof Test.prototype
*/
/**
* Bar is awesome too!
* @property {number} bar
* @memberof Test.prototype
*/
someMethodAddingABehavior(Test, ...params);
Or at least to be able to document them in the class itself:
/**
* Some class
* @class
*/
class Test {
/* whatever */
/**
* What foo is doing is great!
* @method foo
* @param {string} testParam some testing parameter
* @returns {string} some random string
*/
/**
* Bar is awesome too!
* @property {number} bar
*/
}
With support of these, I would expect vscode to suggest to me the foo method and the bar property when completing properties of a value of type Test.
Checklist
My suggestion meets these guidelines:
- This wouldn't be a breaking change in existing TypeScript/JavaScript code
- This wouldn't change the runtime behavior of existing JavaScript code
- This could be implemented without emitting different JS based on the types of the expressions
- This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
- This feature would agree with the rest of TypeScript's Design Goals.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Non vengono indicati file sorgente o test. Inizia individuando la gestione esistente delle annotazioni JSDoc e il percorso utilizzato per VS Code IntelliSense, quindi determina in che modo @method e @property dovrebbero contribuire ai membri di Test. Il lavoro è completato quando i metodi e le proprietà esterni documentati compaiono nel completamento senza modificare il JavaScript emesso.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript, typescript, vscode
- Ambito
- compilers, developer-experience
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 30/100