2017-03-18 6 views
1

で適切なのparamsを示していない。VSCodeは、私はこのように私の機能をjsdoc'edしたオブジェクト

paramsキーが正常に機能のホバー上に展開されていないが

/** 
* @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) { 

とにかくそれが適切にparams引数を展開するためにありますか?それが示すことのために私が期待していた:

それはまた、それは疑問符を持つオプションであることを示さなければならないことを除いて。そして、私は、引数を入力すると、それはこのようにその引数の説明を表示する必要があります:

答えて

1

問題は、あなたがObjectとしてあなたparamsのparamの種類を指定したということです。あなたが二@typedefとしてあなたのparamsを抜け出す必要があります。

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

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

このような名前のインターフェイスを使用して、あなたが探しているように、VSCodeはインテリセンスで引数が表示されるはずです。

+0

ああ、面白い、ありがとうCoderer! – Noitidart

+1

私はこれについて数か月前に読んだことがあります。使用した構文(ドット区切りのサブパラメータ名)は技術的に有効なJSDocだと考えられますが、Intellisenseを入力するTypescriptパーサではサポートされていません。私はあらゆる "opts"議論のために型名を作る必要があるのが好きではないが、それは仕事を終わらせる。 – Coderer

+0

私はあなたに同意しました。私はoptsのすべての引数に対してtypedefをしたくありませんでした。 vscodeのパーサについて説明してくれてありがとうございました。 – Noitidart

関連する問題