ae-different-release-tags
「このシンボルには、異なるリリースタグを持つ別の宣言があります。」
備考
TypeScript言語では、シンボルは複数の宣言を持つことができます。これらは、同じ基礎となるJavaScriptオブジェクトを記述するため、「マージされた宣言」と呼ばれます。ae-different-release-tags
は、マージされた宣言が異なるリリースタグを持つ場合に報告されます。
例
/** @public */
interface Size {
width: number;
height: number;
}
/** @beta */
function Size(width: number, height: number): Size {
return { width, height };
}
// Warning: This symbol has another declaration with a different release tag.
上記の例では、Size
シンボルは@public
とマークされたインターフェイス宣言を持っていますが、@beta
とマークされた関数宣言を持っているため、ae-different-release-tags
エラーが報告されます。
関数のオーバーロードまたはメソッドのオーバーロードでは、異なるリリースタグを混合しても問題ないことに注意してください。例えば
/**
* Combines two values, by adding the numbers.
* @public
*/
export function combine(x: number, y: number): number;
/**
* Combines two values, by appending the strings.
* @beta
*/
export function combine(x: string, y: string): string;
export function combine(x: number | string, y: number | string): number | string {
return x + y;
}
API Extractorで、他のタイプの宣言に対して異なるリリースタグを許可することも可能です。GitHubのissue #972では、この機能強化を提案しており、関連するいくつかの課題について議論しています。
修正方法
シンボルの宣言を同じリリースタグを持つように変更します。