LoginSignup
5
1

More than 3 years have passed since last update.

Compodocで@Injectに苦しんだ件

Last updated at Posted at 2019-06-21

教訓

マイナーなOSSで躓いたらIssueを読みましょう
参考にしたIssue: https://github.com/compodoc/compodoc/issues/745

経緯

Angularで書いたソースのドキュメントを残すためCompodocを使っていて、なぜかStatementが100%にならないコンポーネントがある。

今回はダイアログで詰まったのでそれをベースに。

  /**
   * Creates an instance of DialogComponent.
   * @param {any} dialogData
   * @memberof DialogComponent
   */
  constructor(@Inject(MAT_DIALOG_DATA) public dialogData: any) {}

どうやらコンストラクタで @Inject(MAT_DIALOG_DATA) public ~と書いている部分で引っかかっているよう。

解決策

https://github.com/compodoc/compodoc/issues/745#issuecomment-467857947
これで100%になるよ!(意訳)とのことなので試してみたらマジでした。

どうやらコンストラクタ内の変数にDecoratorsが含まれる場合、対象の変数にDescriptionを書いてあげる必要があるらしい。

こんな感じで書く。分かりづらいけど、@paramの行の最後に書いてるDescription of dialogDataというのがそれ。
ようは変数の説明文をきちんと書かないといけない、らしい。

  /**
   * Creates an instance of DialogComponent.
   * @param {any} dialogData Description of dialogData
   * @memberof DialogComponent
   */
  constructor(@Inject(MAT_DIALOG_DATA) public dialogData: any) {}

これでCompodocさんに満足していただけた。

感想

Compodoc、ユーザーが少ないからかドキュメントが全く出てこない。
みんな使ってほしい。そして記事を書いてほしい。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1