JavaScriptの最初のパラメータは、オプションのを持つ迷惑な関数の1つを文書化しようとしています。ドキュメントJavaScriptのオプションの最初のパラメータ
機能のようなもの.use()
express
からfunction use(path, callback) // path is optional
私は働く何かを見つけようとし、理想的にはひどく醜いではありませんよ。実際のコード署名用
私の好みはこの次のようになります。その場合
function use(...args) {
const [callback, path] = args.reverse();
}
、私は2つのパラメータを持っていないので、私は2本の@param
ラインを使用しようとすると、私は中に怒鳴ら取得しますJSDocのブロック:私は意図したとおりにパラメータを使用し、所定の位置にパラメータを置くための異なるパターンを使用している場合callback
がString
ではないので
/**
* @param {String=} path
* @param {Function} callback
*/
function use(...args) // mismatched parameters
、私は(WebStormで)怒鳴らます:
/**
* @param {String=} path
* @param {Function} callback
*/
function use(path, callback) {
if (typeof path == 'function') {
callback = path; // yelled at because callback can't be a string
path = undefined;
}
}
私はグーグルで調べて、この問題について議論しているさまざまな人々と古いものをたくさん見つけましたが、明確な答えはありません。投稿が古くて、多くのことが起こったので、私は新しいことを尋ねたがっています。これを文書化して、少なくともWebStormではすべてが幸せであるか、オプションの最初のパラメータを可能にする新しいES#構文があります(それは適切な自動完成を生成することができます)?
これはflowまたはtypescriptに切り替える場所です) – vzwick
または、このgoofy reverse optional parametersパターンを使用しているときに、シャインで人を蹴り始めてください。私はバニラJSが大好きですが、最初にこのパターンを普及させたのは...私の好きな人ではありません。 = p – samanime
半関連のノート: '@ callback'タグを見てみるとよいでしょう - http://usejsdoc.org/tags-callback.html – vzwick