quick-lint-js

Find bugs in JavaScript programs.

E0315: (name) is not the name of a parameter

After a function's parameter list, you can write a TypeScript type predicate (using is) instead of a return type. It is an error for the type predicate to refer to a variable which is not a parameter:

function isError(error: unknown): erorr is Error {
  return error instanceof Error;
}

function isAdminUser(
  user: User | null,
): AdminUser is user {
  return user && user.isAdministrator;
}

To fix this error, fix the typo in the parameter name:

function isError(error: unknown): error is Error {
  return error instanceof Error;
}

Alternatively, flip the parameter name with the type:

function isAdminUser(
  user: User | null,
): user is AdminUser {
  return user && user.isAdministrator;
}

Introduced in quick-lint-js version 2.10.0.

Documentation for other errors