2017-03-18 2 views
1

Ich habe meine Funktion wie diese jsdoc'ed:VSCode zeigt nicht die richtige params in Objekt

/** 
* @typedef {Object} SearchTerms 
* @property {string} what 
* @property {string} where 
* @property {boolean} online 
*/ 

/** 
* From react-router params, which are URL encoded, it figures out the "what", "where", and "online" terms. 
* 
* @export 
* @param {Object} params The `params` field from react-router component props. 
* @param {string} [params.what="Everything"] The subject of users search. 
* @param {string} [params.where] The location of users search. 
* @returns {SearchTerms} 
*/ 
export function getSearchTerms(params) { 

jedoch die params Schlüssel nicht richtig auf schweben der Funktion erweitert wird:

Gibt es trotzdem dafür params Argument richtig zu erweitern? Ich hatte gehofft, für sie zu zeigen:

Abgesehen davon, dass es auch zeigen sollte, dass es mit Fragezeichen ist optional. Und als ich das Argument geben, sollte es die Bezeichnung jenes Argument wie folgt zeigen:

Antwort

1

Das Problem ist, dass Sie die Art Ihrer params param als Object angegeben haben. Sie sollten Ihren params als zweite @typedef ausbricht:

/** 
* @typedef SearchOptions 
* @property {String} [what="Everything"] The thing 
* @property {String} [where] A place 
*/ 

/** 
* @param {SearchOptions} params 
*/ 
function getSearchTerms(params){ ... } 

Mit Hilfe einer Schnittstelle namens wie diese, VSCode die Argumente in Intellisense zeigen sollten, wie Sie suchen.

+0

Oh interessant, danke Coderer! – Noitidart

+1

Ich erinnere mich daran, vor ein paar Monaten gelesen zu haben, ich glaube, dass die verwendete Syntax (dot-separated sub-parameter names) technisch gültige JSDoc ist, aber nicht unterstützt von dem Typescript-Parser, der Intellisense füllt. Ich mag es nicht, einen Typnamen für jedes "opts" -Argument zu erfinden, aber es erledigt den Job. – Coderer

+0

Ich stimme dir so zu Ich wollte nicht für jeden Opt Arg schreiben. Vielen Dank, Sir, dass Sie den Parser in vscode erklärt haben. – Noitidart

Verwandte Themen