'JSON.stringify not serializing Extended class props

I have an issue stringifying JavaScript extended class. First, I create MyError class as extension of Error and then try JSON.stringify on a new instance of MyError.

I expect to see .message property of the inherited (Error) class, but stringify only serializes direct attributes of MyError class. See code and output below.

Is there a way to tell stringify to include Error.message? Or an easy workaround to achieve this?

class MyError extends Error {
  constructor(message, hint = "") {
    super(message);
    this.message = message; // attempt to trick .stringify
    this.hint = hint;
  }
}

console.log(JSON.stringify(new MyError("hello world");));

Actual output: {"hint":""}

Desired output: {"message":"hello world","hint":""}



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source