Skip to content

Latest commit

 

History

History
54 lines (42 loc) · 1.43 KB

File metadata and controls

54 lines (42 loc) · 1.43 KB

1016 - A required parameter cannot follow an optional parameter.

🔍 Regex Patterns

regexFind: /([a-zA-Z_$][a-zA-Z0-9_$]*\?\s*:[^,)]+),\s*([a-zA-Z_$][a-zA-Z0-9_$]*\s*:[^,)]+)/
regexReplace: $2, $1

💡 Suggestion

Move optional parameters after required parameters. Required parameters must come before optional ones.

📝 Examples

Example 1: Basic optional before required

- function createUser(firstName: string, lastName?: string, age: number) {
+ function createUser(firstName: string, age: number, lastName?: string) {
  return { firstName, lastName, age }
}

Explanation: Required parameters must come before optional parameters

Example 2: Different parameter names

- function processData(data?: string, required: boolean) {
+ function processData(required: boolean, data?: string) {
  return { data, required }
}

Explanation: Move optional parameter after required parameter

🖼️ Visual Output

Command

npx tsc ./docs/1016/index.ts --noEmit --pretty

Result

docs/1016/index.ts:1:59 - error TS1016: A required parameter cannot follow an optional parameter.

1 function createUser(firstName: string, lastName?: string, age: number) {
                                                          ~~~

OR (without --pretty flag):

docs/1016/index.ts(1,59): error TS1016: A required parameter cannot follow an optional parameter.