quick-lint-js

Find bugs in JavaScript programs.

E0244: abstract classes are not allowed in JavaScript

Marking classes as abstract is a TypeScript feature. It is a syntax error to write abstract before class in JavaScript:

abstract class Logger {
  log(message) {
    this.logRaw(LogSeverity.INFO, message);
  }
}

class ConsoleLogger extends Logger {
  logRaw(severity, message) {
    console.log(message);
  }
}

To fix this error, remove the abstract keyword and rely on JavaScript's dynamic typing:

class Logger {
  log(message) {
    this.logRaw(LogSeverity.INFO, message);
  }
}

class ConsoleLogger extends Logger {
  logRaw(severity, message) {
    console.log(message);
  }
}

Introduced in quick-lint-js version 2.6.0.

Documentation for other errors