あたりを読むと勉強になる。ネームスペースでユーティリティメソッド群を実装する場合にも通じる。使う「ここではこういう理由からこういう状態であるべき」をコードで明記できる。goog.ui.Componentでは以下のようにして使っている。書くJavaの人としてはundefinedやnullになりえる場合は明記したい。すればnullになる可能性がある(nullを許容する)ことの明記になる。undefinedは{(Object|undefined)}とする。descriptionで良い。https://developers.google.com/closure/compiler/docs/js-for-compiler@paramの場合は=を使って省略可能であることも明記できる。この場合、=の右側にデフォルト値を併記しておくとドキュメント生成に良い。追記:はてぶコメントで指摘いただきました、stringはプリミティブなのでnullにはならないそうです。使うことでスーパークラスのドキュメントを使える。Library自身にもけっこうドキュメントが空っぽなメソッドがあるが、このタグを使えば解決できることが多い。追記:はてぶコメントで指摘いただきました、deprecatedになっているそうです。Objectの中身(プロパティ)について名前と型情報を明記できる。Objectを使いたい、値を表すクラスを作るまでもないケースで有用。Objectを使うメソッドが複数ある場合、JSDocをコピペするのではなく、@typedefで型を定義すると良い。ObjectがUrlObject_として定義されている。Library流っぽい。Array等を扱うメソッドで代わりにこれらを使うようにすると、カタさを保ちつつ柔軟性を上げられる。いうメソッドもあるが型として定義されているわけではない。ツールをちゃんと使う省略。日本語情報少ないので。こちらをご覧ください。