lukeapage / eslint-plugin-destructuring

Eslint rules related to ES2015 destructuring
17 stars 5 forks source link

Doesn't detect parameter destructuring when the parameter has a default value. #46

Open Shakeskeyboarde opened 2 years ago

Shakeskeyboarde commented 2 years ago

Destructuring is a warning in all parameters.

{
  "rules": {
    "destructuring/in-params": ["warn", { "max-params": 0 }]
  }
}

This doesn't show a warning:

const createConnectMiddleware = <TArgs extends readonly unknown[]>(
  id: string,
  factory: (...args: TArgs) => (req: IncomingMessage, res: ServerResponse, next: (error?: unknown) => void) => void,
  { timeoutSeconds = 3 }: MiddlewareConnectOptions = {},
): MiddlewareFactory<TArgs> => {
  ...
}

This does show a warning:

const createConnectMiddleware = <TArgs extends readonly unknown[]>(
  id: string,
  factory: (...args: TArgs) => (req: IncomingMessage, res: ServerResponse, next: (error?: unknown) => void) => void,
  { timeoutSeconds = 3 }: MiddlewareConnectOptions,
): MiddlewareFactory<TArgs> => {
  ...
}

Difference:

{ timeoutSeconds = 3 }: MiddlewareConnectOptions = {},
{ timeoutSeconds = 3 }: MiddlewareConnectOptions