web-dev-qa-db-ja.com

スローされるオブジェクトが期待されるlintエラーを与える汎用スロー

Lintエラーを発生させるスローコードの下スローされるオブジェクトがスローされないことを期待

throw { code : 403, message : myMessage };

throw new Errorを試してみると、eslintが表示されませんが、応答に[Object Object]が表示されます。

throw new Error({ code : 403, message : myMessage });

誰かが修正方法を教えてもらえますかオブジェクトがスローされると予想されましたエラー? eslint構成/ルールを削除せずに

11
Munna Babu
 throw Object.assign(
   new Error(myMessage),
   { code: 402 }
);

通常のエラーをスローし、カスタムフィールドで拡張します。


そのための再利用可能なエラークラスを書くこともできます:

  class CodeError extends Error {
   constructor(message, code) {
    super(message);
    this.code = code;
   }
 }

 throw new CodeError(myMessage, 404);

そうすれば、キャッチ時にエラーを簡単に区別できます。

  } catch(error) {
    if(error instanceof CodeError) {
      console.log(error.code);
    } else {
      //...
    }
 }
15
Jonas Wilms

もう1つの簡単な回避策は、変数の格納エラーとスローです。

let errorMessage =  { code : 403, message : myMessage };
throw errorMessage;
5
Munna Babu