Error
napi.Error is the @teakit/napi error set. It is mapped 1:1 from N-API's napi_status so every distinct N-API failure mode is a distinct named error you can match.
Use it when you want to handle a specific failure mode rather than propagate everything. For the conceptual model, see Errors.
Common members
A non-exhaustive list of values you will see most often:
The full set is whatever N-API's napi_status enum contains. New variants get added as Node adds them.
When the bridge throws an error in JS
The bridge catches every error your function returns and converts it to a JS exception (Error with the Zig error name as .message). The same applies to errors raised by argument conversion (error.StringExpected, etc.), which become JS TypeErrors before your function runs.
You only catch @teakit/napi errors when you want to handle them locally rather than let the bridge propagate them.