1 | # `default-param-last`
|
2 |
|
3 | Enforce default parameters to be last.
|
4 |
|
5 | ## Rule Details
|
6 |
|
7 | This rule extends the base [`eslint/default-param-last`](https://eslint.org/docs/rules/default-param-last) rule.
|
8 | It adds support for optional parameters.
|
9 |
|
10 |
|
11 |
|
12 | ### ❌ Incorrect
|
13 |
|
14 | ```ts
|
15 | /* eslint @typescript-eslint/default-param-last: ["error"] */
|
16 |
|
17 | function f(a = 0, b: number) {}
|
18 | function f(a: number, b = 0, c: number) {}
|
19 | function f(a: number, b?: number, c: number) {}
|
20 | class Foo {
|
21 | constructor(public a = 10, private b: number) {}
|
22 | }
|
23 | class Foo {
|
24 | constructor(public a?: number, private b: number) {}
|
25 | }
|
26 | ```
|
27 |
|
28 | ### ✅ Correct
|
29 |
|
30 | ```ts
|
31 | /* eslint @typescript-eslint/default-param-last: ["error"] */
|
32 |
|
33 | function f(a = 0) {}
|
34 | function f(a: number, b = 0) {}
|
35 | function f(a: number, b?: number) {}
|
36 | function f(a: number, b?: number, c = 0) {}
|
37 | function f(a: number, b = 0, c?: number) {}
|
38 | class Foo {
|
39 | constructor(public a, private b = 0) {}
|
40 | }
|
41 | class Foo {
|
42 | constructor(public a, private b?: number) {}
|
43 | }
|
44 | ```
|
45 |
|
46 | ## How to Use
|
47 |
|
48 | ```jsonc
|
49 | {
|
50 | // note you must disable the base rule as it can report incorrect errors
|
51 | "default-param-last": "off",
|
52 | "@typescript-eslint/default-param-last": ["error"]
|
53 | }
|
54 | ```
|
55 |
|
56 | ## Options
|
57 |
|
58 | See [`eslint/default-param-last` options](https://eslint.org/docs/rules/default-param-last#options).
|
59 |
|
60 | <sup>
|
61 |
|
62 | Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/main/docs/rules/default-param-last.md)
|
63 |
|
64 | </sup>
|
65 |
|
66 | ## Attributes
|
67 |
|
68 | - Configs:
|
69 | - [ ] ✅ Recommended
|
70 | - [ ] 🔒 Strict
|
71 | - [ ] 🔧 Fixable
|
72 | - [ ] 💭 Requires type information
|