TypeScript でのインポート ステートメントの合理化
大規模な TypeScript または JavaScript プロジェクトで作業する場合、特に 1 つのモジュールから複数のメンバーをインポートする場合に、長いインポート ステートメントが発生することがよくあります。これらの行は最初は無害に見えるかもしれませんが、あなたの考えを簡単に超えてしまう可能性があります。 より美しく 構成の 印刷幅 設定すると、コードの読み取りと保守が困難になります。
コードをすっきりと読みやすく保つには、これらのインポートの書式設定を自動化することが重要です。のようなツール より美しく そして ESLint 長い import ステートメントを自動的に複数行に分割するようにカスタマイズできます。これにより、コードがクリーンで一貫性のある状態に保たれ、設定した書式ルールに準拠することが保証されます。
ただし、必要に応じて import ステートメントを自動的にフォーマットするようにこれらのツールを構成するのは難しい場合があります。 Prettier と ESLint の両方のデフォルト設定は多くの書式設定の問題に対処しますが、長いインポート ステートメントを複数行に分割する場合は不十分であることがよくあります。
このガイドでは、TypeScript プロジェクトの import ステートメントを適切にフォーマットするために Prettier と ESLint を構成する方法を説明します。コードベース全体の一貫性を維持しながら複数行のインポートを実現するために必要な設定について説明します。
指示 | 使用例 |
---|---|
prettier.format | この Prettier 関数は、設定されたルール (printWidth、singleQuote など) に従ってコード ブロックをフォーマットするために使用されます。コード文字列を処理し、フォーマットされた出力を返すため、コード スタイルの一貫性を確保するのに最適です。 |
eslint.RuleTester | ESLint に固有のこのコマンドを使用すると、開発者はカスタム ESLint ルールをテストできます。ルール テスターにサンプル コードを入力すると、インポートが複数行に分割されていることを確認するなど、ルールが正しく適用されているかどうかが検証されます。 |
prettier-plugin-organize-imports | これは、インポートを自動的に整理するように設計された Prettier プラグインです。これにより、インポート ステートメントが確実にソートされ、printWidth などの Prettier ルールと組み合わせると、長いインポートを複数行に分割できます。 |
jest.describe | 関連するテストをグループ化する Jest 関数。このコンテキストでは、ESLint および Prettier 構成が長いインポート ステートメントを複数行に分割して正しく処理するかどうかを検証するテストをグループ化します。 |
import/order | これは、インポート ステートメントの順序に関する規則を強制する、eslint-plugin-import の特定の ESLint ルールです。また、異なるインポート グループ (組み込み、外部パッケージなど) 間で改行を強制的に追加することもできます。 |
alphabetize | インポート/順序 ESLint ルール内で、このオプションにより、インポートされたメンバーが確実にアルファベット順に並べ替えられます。これにより、特に複数のインポートを含む大規模なプロジェクトでコードの可読性が向上します。 |
jest.it | この Jest 関数は、単一の単体テストを定義するために使用されます。この例では、構成された Prettier ルールと ESLint ルールによって長いインポートが複数の行に正しく分割されているかどうかをチェックします。 |
newlines-between | インポート/オーダー ESLint ルールの構成オプション。これにより、インポート グループ (外部インポートと内部インポートなど) の間に強制的に改行が挿入され、コードがより構造化され、ナビゲートしやすくなります。 |
TypeScript での複数行インポート用の Prettier と ESLint の構成
上記のスクリプトの主な目的は、 より美しく そして ESLint TypeScript プロジェクト内の複数行にわたる長いインポート ステートメントを自動的にフォーマットします。 Prettier 構成は、一重引用符や末尾のカンマなどのコーディング スタイルを定義し、 印刷幅 ルール。行が設定された幅 (この場合は 80 文字または 120 文字) を超えると、Prettier はコードを読みやすくするために自動的にコードをフォーマットします。を使用することで、 きれいなプラグインの整理インポート プラグインでは、インポート ステートメントが論理的に分割および並べ替えられるようにします。
ESLint 構成では、 輸入・注文 からのルール eslint-プラグイン-インポート プラグインは、インポートの編成方法を制御するために不可欠です。ここでの目標は、異なるグループ (組み込みモジュール、外部パッケージ、内部モジュールなど) からのインポートが改行で区切られる、一貫したインポート構造を強制することです。さらに、同じグループ内のインポートは、読みやすくするためにアルファベット順に並べられています。これらのルールにより、特に複数のファイルからインポートされた多数のメンバーを処理する場合に、インポートが乱雑になるのを防ぎます。
ESLint セットアップのもう 1 つの重要な側面は、 改行間 このオプションにより、各インポート グループが空白行で区切られます。これにより、特に大規模なコードベースで、コードがより視覚的に整理されます。と組み合わせると、 アルファベット順に並べる ルールに従って、インポート ブロック全体が構造化され、保守が容易になります。コードが Visual Studio Code で保存時に書式設定されると、これらの設定が自動的に適用され、手動で調整することなく、プロジェクト全体で一貫したインポート書式が保証されます。
最後に、この構成が正しく動作することを確認するには、この構成をテストすることが重要です。の 冗談 単体テストは、Prettier および ESLint 構成がインポートの分割とフォーマットを期待どおりに処理するかどうかを確認するように設計されています。たとえば、長い import ステートメントが指定された場合、テストはそれが複数の行に適切に分割されているかどうかを検証します。このアプローチにより、開発者は書式設定ルールのテストを自動化し、将来のコード変更が同じインポート構造ガイドラインに確実に準拠するようにすることができます。
TypeScript で長いインポート ステートメントを分割するための Prettier と ESLint の構成
このスクリプトは、Prettier と ESLint を利用して、TypeScript プロジェクト内の複数行のインポート ステートメントの書式設定を構成します。 Visual Studio Code を使用したフロントエンド開発に焦点を当てています。
module.exports = {
semi: false,
singleQuote: true,
trailingComma: 'all',
printWidth: 80,
plugins: ['prettier-plugin-organize-imports'],
}
// Prettier configuration setup for import splitting
ESLint プラグイン インポートによるインポート形式の ESLint の使用
このバックエンド スクリプトは、インポート プラグインを使用して ESLint を構成し、複数行のインポート ルールを適用します。これにより、コードのモジュール性が最適化されます。
module.exports = {
"extends": ["eslint:recommended", "plugin:import/errors", "plugin:import/warnings"],
"rules": {
"import/order": [
"error", {
"groups": ["builtin", "external", "internal"],
"newlines-between": "always",
"alphabetize": { "order": "asc", "caseInsensitive": true }
}],
"max-len": ["error", { "code": 80 }],
}
}
// ESLint rule setup to organize imports into multiple lines and ensure alphabetical order
インポートフォーマット構成をテストするためのサンプルスクリプト
このスクリプトは、Prettier 構成と ESLint 構成のアプリケーションを示します。これは、長いインポートを複数の行に分割するフロントエンドの例として機能します。
import {
longFunctionNameOne,
longFunctionNameTwo,
longFunctionNameThree
} from '@example/long-module-name';
import {
shortFunctionNameOne,
shortFunctionNameTwo
} from '@example/short-module-name';
// Example of formatted import statements following the configured rules
インポート形式設定の単体テスト
このバックエンド スクリプトは、Jest を使用した単体テストを提供し、Prettier および ESLint 構成がさまざまな環境で期待どおりに動作することを確認します。
const eslint = require('eslint');
const prettier = require('prettier');
const { describe, it } = require('@jest/globals');
describe('Import Formatting', () => {
it('should split long imports into multiple lines', () => {
const code = `import { a, b, c, d } from '@example/package';`;
const formatted = prettier.format(code, { printWidth: 80 });
expect(formatted).toMatch(/import { a, b }/);
});
});
// Unit test to check if long imports are split into multiple lines using Jest
Prettier および ESLint インポート形式によるコードの可読性の向上
大規模なコードベースを扱う場合、コードの可読性とチームのコラボレーションの両方を向上させるために、一貫したインポート構造を維持することが重要になります。開発者が直面する一般的な問題の 1 つは、特に 1 つのモジュールからの多くの要素が含まれている場合に、インポート ステートメントの長さによってファイルの先頭が乱雑になる可能性があることです。ここでは、次のようなツールが使用されます。 より美しく そして ESLint これにより、複数行にわたるインポートの分割を自動化できるようになります。 import ステートメントが定義された幅に準拠していることを確認します。通常は、 印刷幅 設定すると、水平スクロールを防止し、コードをスキャンしやすくします。
もう 1 つの重要な側面は、輸入自体の組織パターンです。を使用して、 輸入・注文 ESLint によって提供されるルールを使用すると、組み込みライブラリ、サードパーティの依存関係、または内部モジュールなどの元に基づいてインポートをグループ化できます。これらのグループは改行で分割できるため、開発者は依存関係を迅速に特定しやすくなります。この方法は、アルファベット順の並べ替えと組み合わせると、構造化されたインポートを促進します。 アルファベット順に並べる オプションを使用すると、コードベース全体の明瞭さと一貫性がさらに向上します。
さらに、開発者は次のようなツールを活用したい場合があります。 きれいなプラグインの整理インポート これにより、インポートが正しく分割されるだけでなく、論理的に再配置されるようになります。これらのツールは、ファイルが Visual Studio Code などのエディターで保存されるたびに、必要なインポート構造を自動的に適用します。これにより、開発者は import ステートメントを手動で調整する必要がなくなり、よりクリーンで保守しやすいコードの作成に集中できるようになります。
Prettier および ESLint を使用したインポート形式に関するよくある質問
- 何が最高ですか ESLint 輸入品を整理するためのルール?
- の import/order からのルール eslint-plugin-import 輸入品の整理に最適です。これにより、インポートを一貫してグループ化、並べ替え、構造化できます。
- を使用して import ステートメントを複数の行に分割できますか? Prettier 一人で?
- Prettier は、次の場合に長い import ステートメントを複数の行に分割できます。 printWidth ルールを超えています。ただし、ESLint と組み合わせることで、より多くのカスタマイズが可能になります。
- は何ですか alphabetize オプションでやりますか?
- の alphabetize のオプション import/order インポートメンバーとステートメントが確実にアルファベット順にソートされ、コードの可読性が向上します。
- インポートが保存時に自動的にフォーマットされるようにするにはどうすればよいですか?
- 両方を確認してください Prettier そして ESLint 通常は、エディターでの保存時に実行されるように設定されています。 Visual Studio Code または同様の IDE。
- なぜ使うのか prettier-plugin-organize-imports?
- このプラグインにより、インポートが複数行に分割されるだけでなく、論理的に並べ替えおよびグループ化されるため、コードの保守性がさらに向上します。
Prettier と ESLint 構成に関する最終的な考え
インポート ステートメントの自動フォーマット用に Prettier と ESLint をセットアップすることは、プロジェクトの保守性を向上させる強力な方法です。これにより、長いインポートが論理的に分割、並べ替え、整理されるようになります。
これらのツールとプラグインを組み合わせることで、TypeScript ファイル全体の一貫性が確保されます。これにより、コードがクリーンに保たれるだけでなく、インポート構造が均一になるため、チーム内のコラボレーションも向上します。
Prettier および ESLint 構成に関する参考資料と役立つソース
- Prettier の構成に関する公式ドキュメントについては、以下を参照してください。 より充実したドキュメント 。
- ESLint とインポート/順序ルールの詳細については、次のサイトを参照してください。 eslint-プラグイン-インポート GitHub 。
- 次のような Prettier プラグインの使用方法を調べるには きれいなプラグインの整理インポート、 訪問 prettier-plugin-organize-imports GitHub 。
- 保存時に自動的にフォーマットされるように Visual Studio Code を構成するための包括的なガイドについては、以下を確認してください。 Visual Studio コードの設定 。