Skip to content

Enhancement: [prefer-promise-reject-errors] Options to allow any and unknown #10375

Closed
@kripod

Description

@kripod

Before You File a Proposal Please Confirm You Have Done The Following...

My proposal is suitable for this project

  • I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).

Link to the rule's documentation

https://typescript-eslint.io/rules/prefer-promise-reject-errors/

Description

Similarly to the options of only-throw-error, the following should be available for prefer-promise-reject-errors, possibly turned on in an upcoming major version by default:

  • allowThrowingAny
  • allowThrowingUnknown

Fail

async function demo() {
  try {
    throw new Error();
  } catch (error: unknown) {
    /* eslint @typescript-eslint/prefer-promise-reject-errors: "error" */
    return await Promise.reject(error);
  }
}

Pass

async function demo() {
  try {
    throw new Error();
  } catch (error: unknown) {
    /* eslint @typescript-eslint/prefer-promise-reject-errors: ["error", { allowThrowingUnknown: true }] */
    return await Promise.reject(error);
  }
}

Additional Info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    accepting prsGo ahead, send a pull request that resolves this issueenhancement: plugin rule optionNew rule option for an existing eslint-plugin rulelocked due to agePlease open a new issue if you'd like to say more. See https://typescript-eslint.io/contributing.package: eslint-pluginIssues related to @typescript-eslint/eslint-plugin

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions