Rush Stack商店博客活动
跳至主要内容

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 网站时发现一个意外包含的内部类,这将令人尴尬。该内容可能是从私有代码注释生成的,而这些注释没有人打算与公众共享!

如何修复

通过在注释中添加发布标签来修复此问题。

或者,如果您真的不想要求明确的发布标签,可以通过在 api-extractor.json 文件中添加类似以下部分来禁用 ae-missing-release-tag 验证

  "messages": {
"extractorMessageReporting": {
"ae-missing-release-tag": {
"logLevel": "none"
}
}
}

另请参阅