Rush Stackショップブログイベント
メインコンテンツへスキップ

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では、この機能強化を提案しており、関連するいくつかの課題について議論しています。

修正方法

シンボルの宣言を同じリリースタグを持つように変更します。

参照