Skip to content

Latest commit

 

History

History
89 lines (61 loc) · 1.6 KB

unified-signatures.md

File metadata and controls

89 lines (61 loc) · 1.6 KB

unified-signatures

Disallows two overloads that could be unified into one with a union or an optional/rest parameter.

Rule Details

This rule aims to keep the source code as maintainable as possible by reducing the amount of overloads.

Options

type Options = {
  ignoreDifferentlyNamedParameters?: boolean;
};

const defaultOptions: Options = {
  ignoreDifferentlyNamedParameters: false,
};

The rule accepts an options object with the following property:

  • ignoreDifferentlyNamedParameters: whether two parameters with different names at the same index should be considered different even if their types are the same.

Examples of code for this rule with the default options:

❌ Incorrect

function x(x: number): void;
function x(x: string): void;
function y(): void;
function y(...x: number[]): void;

✅ Correct

function x(x: number | string): void;
function y(...x: number[]): void;

Examples of code for this rule with ignoreDifferentlyNamedParameters:

❌ Incorrect

function f(a: number): void;
function f(a: string): void;
function f(...a: number[]): void;
function f(...b: string[]): void;

✅ Correct

function f(a: number): void;
function f(b: string): void;
function f(...a: number[]): void;
function f(...a: string[]): void;

Related To

Attributes

  • Configs:
    • ✅ Recommended
    • 🔒 Strict
  • 🔧 Fixable
  • 💭 Requires type information