Ensure error is of type unknown with Deno lint
I'm having an interesting issue in a
catch (error) {
block.
The issue is resolved when I change it to error: unknown
, as I then get a type error in the function I call later.
When the error is any
, I get no warning, and I'm quite sure I'll forget to manually add : unknown
to all my errors, so I'm looking for a way to guard for this 🤔2 Replies
I'd love a deno_lint rule to enforce that I add
: unknown
to all my errors
!! the useUnknownInCatchVariables rule seems to be my solution!I wasn't able to find the answer to your question in the official Deno documentation. However, based on your message, it seems like you are looking for a way to enforce that caught errors are of type
unknown
by default, to ensure you handle them properly in TypeScript.
In TypeScript, when you use a catch
block, the error is implicitly of type any
. To enforce that errors are of type unknown
, you can use a TypeScript compiler option or a lint rule. However, as of my knowledge cutoff date, Deno's built-in linter does not have a specific rule that enforces caught errors to be of type unknown
.
As a workaround, you can manually specify the type of the caught error as unknown
like this:
This will force you to perform type checks or type assertions before you can use the error object, which is a safer approach.
Please note that this advice is not based on the Deno documentation, and I would advise you to double-check the accuracy of the advice given. It's also a good idea to keep an eye on updates to Deno and its linter, as new rules and features are added over time that might address this issue directly.