quick-lint-js

Find bugs in JavaScript programs.

React rocks with quick-lint-js 2.0

We are proud to announce version 2.0 of quick-lint-js!

React is the most used web framework in 2021. With quick-lint-js version 2.0, coding with React is easier than ever. Just install the quick-lint-js VS Code extension and catch your mistakes before you press ⌘-S.

Notable quick-lint-js 2.0 features:

See the full change log here.

How does quick-lint-js compare to ESLint? See for yourself:

ESLint
let headingLinks = [];
for (let el of $("a")) {
  if (el.parentNode.tag = "H1") {
    headingLinks.push(el);
  }
}

Expected a conditional expression and instead saw an assignment;
Unexpected constant condition

quick-lint-js
let headingLinks = [];
for (let el of $("a")) {
  if (el.parentNode.tag = "H1") {
    headingLinks.push(el);
  }
}

'=' changes variables; to compare, use '===' instead [E0188]

ESLint
function TodoEntry({title, children}) {
  return (
    <h3>{title}</h3>
    <div className="body">{children}</div>
  );
}

Adjacent JSX elements must be wrapped in an enclosing tag

quick-lint-js
function TodoEntry({title, children}) {
  return (
    <h3>{title}</h3>
    <div className="body">{children}</div>
  );
}

missing '<>' and '</>' to enclose multiple children;
children end here [E0189]

ESLint
function Link({text, ...props}) {
  return <a {props}>{text}</a>;
} 

Parsing error: Unexpected token props

quick-lint-js
function Link({text, ...props}) {
  return <a {props}>{text}</a>;
} 

missing '...' in JSX attribute spread [E0186]

quick-lint-js running in Visual Studio Code

What should we work on next? Suggest features for quick-lint-js.

quick-lint-js version 2.0 has over 230 patches since version 1.0. 37 people made quick-lint-js possible.

Written by strager, lead developer of quick-lint-js.