ホームページ >ウェブフロントエンド >jsチュートリアル >変更セット エラー パッケージでの ExtendableError の使用法
このインポートは、Changesets CLI パッケージのソース コードの行 #2 にあります
import { ExitError, InternalError } from "@changesets/errors";
以下の概念を学習します:
1. ExtendableError パッケージ
2.ExitError
3. 内部エラー
ExitError が ExtendableError を拡張していることがわかります。
ExtendableError はおそらく同じファイル内で定義された別のクラスだと思いましたが、そうではありませんでした。
extendable-error からインポートされます。これは何ですか?
Error を拡張する単純な抽象的な拡張可能なエラー クラス。エラー名、メッセージ、スタック プロパティを処理します。
npm install extendable-error - save
この使用例はドキュメントからのものです。
import ExtendableError from 'extendable-error'; class SomeError extends ExtendableError { constructor( message: string, public code: number ) { super(message); } } let someError = new SomeError('Some error', 0x0001);
ExtendableError の目的は、JavaScript でカスタム エラー クラスを作成することです
エラー処理の一貫した動作を実現します。 ExtendableError はエラー スタックと名前を保存します。
ChatGPT に ExtendableError の拡張と Error の直接拡張の違いをリストするよう依頼しました。以下は ChatGPT の回答から抜粋したものです。
直接エラーの継承: 一部の古い JavaScript 環境 (古いバージョンの Node.js や一部の非ブラウザー環境など) では、Error を直接拡張すると、name プロパティが常に name に正しく設定されるとは限りません。エラー クラスの値 (例: ValidationError)。
ExtendableError: this.name = this.constructor.name; を明示的に設定します。これにより、環境が正しく動作しない場合でも、name プロパティがすべての環境で正しく設定されるようになります
エラー継承あり。
2.スタック トレースの信頼性:
直接エラー継承: 一部の環境、特に Node.js では、カスタム エラー クラスで Error.captureStackTrace を直接使用すると、スタック トレースがカスタム エラー クラスを指すようになります。あなたが
の場合
これを使用しないでください。スタック トレースが期待どおりに動作しない可能性があり、コール スタック内の間違った場所が表示される可能性があります。
ExtendableError: Error.captureStackTrace を使用することで、ExtendableError は、エラーがスローされた場所を示すスタック トレースが正しく生成されることを保証します。これは環境では非常に重要です
デバッグがスタック トレースに依存する Node.js と同様です。
以下のコードは、Changesets エラー パッケージから選択されたものです
import { ExitError, InternalError } from "@changesets/errors";
以下のコードは Changets エラー パッケージから抜粋されたものです
npm install extendable-error - save
Thinkthroo では、大規模なオープンソース プロジェクトを研究し、アーキテクチャ ガイドを提供しています。私たちは、tailwind で構築された、プロジェクトで使用できる再利用可能なコンポーネントを開発しました。 Next.js、React、Node 開発サービスを提供します。
プロジェクトについて話し合うためのミーティングを予約してください。
https://github.com/changesets/changesets/blob/main/packages/cli/src/index.ts#L9
https://github.com/changesets/changesets/blob/main/packages/errors/src/index.ts#L13
https://www.npmjs.com/package/extendable-error
以上が変更セット エラー パッケージでの ExtendableError の使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。