quick-lint-js

Find bugs in JavaScript programs.

E0312: missing parentheses around parameter; TypeScript optional parameter with type annotation requires parentheses

In TypeScript, parameters can be explicitly marked as optional and can have type annotations. It is a syntax error to write an arrow function with a typed optional parameter without parentheses around the parameter list:

fs.promises.writeFile(outputPath, result)
  .then(async err?: Error => {
    if (err) throw err;
  });

To fix this error, write parentheses around the parameter list:

fs.promises.writeFile(outputPath, result)
  .then(async (err?: Error) => {
    if (err) throw err;
  });

Introduced in quick-lint-js version 2.10.0.

Documentation for other errors