跳到主要內容

統一簽章

禁止可以統一成一個具有共用或選用/休息參數的兩個重載。

🔒

延伸 "外掛程式:@typescript-eslint/嚴格" ESLint 組態 會啟用此規則。

函數重載簽章是 TypeScript 定義函數的一種方式,可以以多種非常不同的方式來呼叫。重載簽章會增加語法和理論上的過載,因此在可能的情況下,通常最好避免使用它們。切換到共用類型和/或選用或休息的參數通常可以避免需要使用重載簽章。

此規則會回報當函數重載簽章可以用單一函數簽章取代時。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/unified-signatures": "error"
}
};

在遊樂場中嘗試此規則 ↗

範例

function x(x: number): void;
function x(x: string): void;
在遊樂場中開啟
function y(): void;
function y(...x: number[]): void;
在遊樂場中開啟

選項

此規則接受下列選項

type Options = [
{
/** Whether two parameters with different names at the same index should be considered different even if their types are the same. */
ignoreDifferentlyNamedParameters?: boolean;
},
];

const defaultOptions: Options = [{ ignoreDifferentlyNamedParameters: false }];

ignoreDifferentlyNamedParameters

本規則使用 ignoreDifferentlyNamedParameters 的程式碼範例

function f(a: number): void;
function f(a: string): void;
在遊樂場中開啟

不用於下列情況

這 purely 是幫助提高函數簽章オーバーロード的可讀性的樣式規則。如果您不想持續地讓它們並排而處,並保持一致,您可以將它關閉。

資源