2013-10-08 26 views
6

JSDoc @typeタグでは、/** @type {Number} */などの可変タイプを指定できます。しかし、中括弧なしで/** @type Number */も表示されており、同様に有効です。JSDoc @type中括弧は何ですか?

Use JSDocには、中括弧ありとなしの両方の例がありますが、その違いについては説明しません。 Google Closure Compilerのドキュメントでは、すべての宣言に中括弧が必要であることを示していますが、そうでない場合には何が起こるかは指定されていません。

中括弧は重要ですか?もしそうなら、なぜですか?もしそうでなければ、私はそれらを使うべきかしないのですか?

+0

[http://usejsdoc.org/tags-type.html]のように見えても、もう無力な例はありません。しかし、個人的には、無力な構文が私の頭の中のパーサーによってはるかに読みやすいと思います。 – Lambart

答えて

4

いくつかの型仕様には空白を入れることができるので、中括弧はパーサのためのものです。

例えば、文字列キーと数値を持つオブジェクト:パーサは型宣言の終わりとして、最初の空白を読みますと

{Object.<string, number>} 

パーサによっては、単純型(例えば文字列)は、中括弧を必要としない場合があります。

編集:中括弧が必要であることを示唆しているので、それらを省略するとエラーになりますが、上記のように扱うことができれば、大雑把ではないにしてもパーサーは容赦のない型定義を許します。

tldr:重要ですが、場合によっては使用せずに立ち去ることもできます。

+0

@Lambartさんのコメントによると、これが今の場合は分かりませんが、デフォルトでは最高の答えです! – orlade

+0

さらに詳しい情報は中括弧が必要であることを示唆していますか? JSDocの公式文書の中には、それらを使用しないものがあります。 http://usejsdoc.org/tags-augments.html – Alicia

関連する問題