ae-missing-release-tag
"___はパッケージの API の一部ですが、リリース タグ (@alpha、@beta、@public、または @internal) がありません。
備考
API エクストラクターは、リリース タグを使用して API の成熟度を追跡します。デフォルトでは、API のすべての宣言にリリース タグが必要です。
例
/**
* The widget class
*/
export class Widget {
// <-- missing release tag
/** Renders the widget */
public render(): void {}
}
// Warning: "Widget" is part of the package's API, but it is missing
// a release tag (@alpha, @beta, @public, or @internal)
この警告は、次のように `@public` リリース タグを追加することで修正できます。
/**
* The widget class
* @public
*/
export class Widget {
/** Renders the widget */
public render(): void {
// <-- release tag not required
}
}
リリース タグは、ネストされた宣言のコンテナーから継承されることに注意してください。したがって、`ae-missing-release-tag` は最も外側のコンテナーのみを考慮します。
`ae-missing-release-tag` 検証は、最初は少し面倒に思えるかもしれません。ただし、明示的なリリース タグを必須とすることには、いくつかの利点があります。
コードを読むときに、可視性がすぐに明らかになります。たとえば、PR の差分では、レビュー担当者はエントリポイントを確認できない場合がありますが、リリース タグは、このクラスに特別な注意を払う必要があることを明確に示しています。これは API シグネチャの一部です。
新しい API を追加するときに、リリース タグを選択すると、可視性について考えざるを得なくなります。この API 設計の成熟度はどの程度ですか?本当に `@public` にする必要がありますか、それとも `@alpha` または `@beta` から始めるべきでしょうか?
事故を回避します。たとえば、ある日 API Web サイトを閲覧していて、意図せずに含まれてしまった内部クラスを発見するのは恥ずかしいかもしれません。コンテンツは、公開を意図していなかったプライベートコードコメントから生成された可能性があります!
修正方法
コメントにリリース タグを追加して、この問題を修正してください。
または、本当に明示的なリリース タグを必須にしたくない場合は、**api-extractor.json** ファイルに次のようなセクションを追加することで、`ae-missing-release-tag` 検証を無効にすることができます。
"messages": {
"extractorMessageReporting": {
"ae-missing-release-tag": {
"logLevel": "none"
}
}
}