This JavaScript rule advises against throwing literals such as strings, numbers, or null, and instead recommends throwing an instance of Error or a subclass of Error. Throwing an Error object helps to provide a stack trace, which can be extremely beneficial for debugging purposes. Stack traces provide a detailed report of the sequence of nested function calls that led to the error being thrown, along with contextual information for each frame.
The importance of this rule lies in its capacity to improve debugging and error handling. When a literal is thrown, the only information available is the literal itself. On the other hand, when an Error object is thrown, you get a lot more context about where and why the error occurred. This can save a significant amount of time during the debugging process.