Skip to content

Enhancement: [consistent-generic-constructors] check default parameter #6151

Closed
@omril1

Description

@omril1

Before You File a Proposal Please Confirm You Have Done The Following...

My proposal is suitable for this project

  • I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).

Link to the rule's documentation

https://typescript-eslint.io/rules/consistent-generic-constructors/

Description

I think the rule should check function and constructor arguments with default parameter values as well

Related rule: no-inferrable-types

Fail

/* eslint "@typescript-eslint/consistent-generic-constructors": ["error", "constructor"] */
class Foo1 {
  bar(baz: Set<string> = new Set()) { }
}

class Foo2 {
  constructor(bar: Set<string> = new Set()) { }
}

/* eslint "@typescript-eslint/consistent-generic-constructors": ["error", "type-annotation"] */
class Foo1 {
  bar(baz = new Set<string>()) { }
}

class Foo2 {
  constructor(bar = new Set<string>()) { }
}

Pass

/* eslint "@typescript-eslint/consistent-generic-constructors": ["error", "constructor"] */
class Foo1 {
  bar(baz = new Set<string>()) { }
}

class Foo2 {
  constructor(bar = new Set<string>()) { }
}

/* eslint "@typescript-eslint/consistent-generic-constructors": ["error", "type-annotation"] */
class Foo1 {
  bar(baz: Set<string> = new Set()) { }
}

class Foo2 {
  constructor(bar: Set<string> = new Set()) { }
}

Additional Info

No response

Metadata

Metadata

Assignees

Labels

accepting prsGo ahead, send a pull request that resolves this issueenhancement: plugin rule optionNew rule option for an existing eslint-plugin rulepackage: eslint-pluginIssues related to @typescript-eslint/eslint-plugin

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions