TypeScript のリファクタリング
リファクタリング(英語)とは、アプリケーションの動作を変更せずにソースコードを更新することを意味します。 リファクタリングは、コードを堅牢な dry(英語) 状態に保ち、保守しやすくできます。
移動リファクタリング
ファイルやフォルダーの移動に加えて、WebStorm は TypeScript のトップレベルシンボルも移動できます。 シンボルの移動リファクタリングは、ES6 モジュールのクラス、関数、変数に対して機能します。
クラス、関数、変数を移動する
移動するシンボルを選択します。
F6 を押すか、メインメニューまたは選択したコンテキストメニューから を選択します。 あるいは、 を選択するか Ctrl+Alt+Shift+T を押してから、リストから を選択します。
モジュールメンバーの移動 ダイアログが開きます。
宛先ファイルを指定し、移動するメンバーを選択します。
デフォルトでは、WebStorm はメンバーの可視性を必要なレベルまで自動的に上げます。 可視性レベルを変更しない場合は、 可視性 の そのまま をクリックします。
クラスメンバーのプルアップリファクタリング
クラスメンバーをプルアップするリファクタリングは、現在のクラスから実装されているスーパークラスまたはインターフェースへ、クラス階層内のクラスメソッドを上に移動します。
クラスのメソッドをスーパークラスまたはインターフェースに移動する
次のいずれかの操作で メンバーのプルアップ ダイアログを開きます:
メンバーを呼び出したいクラス内の任意の場所にカーソルを置き、メインメニューまたはコンテキストメニューから を選択します。
Ctrl+Shift+A を押して、
Pull Members Upを検索してください。
メンバーのプルアップ ダイアログのリストから、メソッドを移動したいスーパークラスまたはインターフェースを選択します。
メソッドをプルアップするには、 プルアップするメンバー リストでそのメソッドの横にあるチェックボックスを選択します。 該当する場合は、移動するメソッドの横にある 抽象化する チェックボックスを選択します。
抽象クラス Department を拡張し、インターフェース ReportingDepartment を実装するクラス AccountingDepartment があるとします。
例 1: クラスメソッドをスーパークラスに移動する
この例では、 PrintMeeting() メソッドが AccountingDepartment から Department に移動されています。
例 2: クラスメソッドをインターフェースに移動する
この例では、 PrintMeeting() メソッドが AccountingDepartment クラスから ReportingDepartment インターフェースにコピーされます。
名前の変更リファクタリング
任意の言語のコンテキストで使用できる ファイルとフォルダーの名前を変更するに加えて、クラス、メソッド、変数、パラメーター、フィールドの名前を変更することもできます。 WebStorm は宣言内およびデフォルトで現在のプロジェクト内のすべての使用箇所でシンボル名を変更します。
名前変更リファクタリングはインプレースで実行されますが、 Shift+F6 を押すと、 名前変更 ダイアログでリファクタリングスコープを構成できます。
デフォルトでダイアログを開くには、 設定 ダイアログ (Ctrl+Alt+S) を開き、 に移動して、 リファクタリングオプションを指定する 領域で モーダルダイアログ内 オプションを選択します。
エディターで、名前を変更するクラス、メソッド、変数、フィールドを選択し、 Shift+F6 を押すか、コンテキストメニューから を選択します。
キャンバスのあるフィールドで、シンボルの新しい名前を指定します。 名前を入力するか、リストから適切な名前を選択します。
オプション:
ハイライトされたシンボルの横にある
をクリックして 他でも名前を変更する ポップアップを開き、 コメントと文字列内を検索 および テキスト出現箇所の検索 チェックボックスを選択して、コメント、文字列リテラル、テキストでのシンボルの使用箇所の名前を変更します。
オプション:
より多くのオプションを使用して 名前変更 ダイアログを開くには、もう一度 Shift+F6 を押します。
コメントと文字列内を検索 チェックボックスを選択して、コメント、ドキュメントコメント、文字列リテラルでのシンボルの使用箇所の名前を変更します。
テキスト出現箇所の検索 チェックボックスを選択して、HTML 内のテキストおよびプロジェクトに含まれるその他のファイル内の一致するシンボルの名前を変更します。
JavaScript ファイルを検索する チェックボックスを選択して、生成された JavaScript コードでのシンボルの使用箇所の名前を変更します。
シンボルの動的使用箇所の名前を変更するには、 動的参照の検索 チェックボックスを選択します。
以下の例に示すように、リファクタリングに動的使用箇所を含めると、誤った名前変更が発生する場合があります。 ここで
targetはconsole.log(e.target)内でmyTargetに変更できます。これはeが型anyであり、myIntでもある可能性があるためです。interface myInt { target: string } function onClick(e: any) { console.log(e.target); }interface myInt { myTarget: string } function onClick(e: any) { console.log(e.myTarget); }
誤った名前の変更を避けるために、 変更を適用する前に変更をプレビューしてください。
シンボルの動的な使用例を表示するには、
を押してください。デフォルトでは、 リファクタリングプレビュー ツールウィンドウで、シンボルのすべての動的な使用が除外としてマークされ、 コード内の <symbol> への動的参照; ノードにグループ化されます。 使用箇所にリファクタリングを適用するには、コンテキストメニューから 含める を選択します。

クラスの名前と含まれているファイルを準拠させてください
クラス名を変更すると、WebStorm は同名のファイル名の変更も提案します。 提案を受け入れると、WebStorm は他ファイルのインポート文でこのファイル名も更新します。
この提案を却下した場合は、後で ファイル名の変更… インテンションアクションを使用してファイルの名前を変更できます。 これは、新しいファイルを作成したばかりで、そこにクラスまたはインターフェースを入力し始めたときに、より適切な名前を思いついた場合に便利です。
別のインテンションアクションは、クラスを対応する名前の新しいファイルに移動することを提案します。 推奨ファイル名の形式は、 ファイル名規約 リストのスタイルが Code Style: JavaScript ページで選択された内容によって決まります。
対応するクラスの名前に準拠してファイルの名前を保持する
クラス名にキャレットを置き、 Alt+Enter を押します。
インテンションリストから、 クラス名に一致するようにファイルを <class_name.ts> に名前変更する または クラス <class_name> をファイル <class_name.ts> に移動する; を選択します。

抽出 / 導入リファクタリング
WebStorm には、パラメーター・変数・定数・フィールド・メソッド・関数の導入に対応したさまざまな 抽出リファクタリングがあります。 これらのリファクタリングを実行するには、リファクタリング対象の式を選択して を選択します。 式全体を選択するか、式内の任意の箇所にキャレットを置くと、WebStorm が選択を補助します。
パラメーターの導入
パラメーターの導入リファクタリングを使用して、関数呼び出しの式をパラメーターで置き換えます。 WebStorm はそれに応じて関数の宣言と呼び出しを更新します。 新しいパラメーターのデフォルト値は、関数本体の中で初期化することも、関数呼び出しを渡すこともできます。
関数 greeter() にハードコードされた "Hello, " を含むコードがあるとします。
パラメーターの導入リファクタリングを使用すると、このハードコードされた "Hello, " を greeting パラメーターに置き換えることができます。 新しい greeting パラメーターは、 オプションまたは 必須として抽出できます。
例 1: オプションのパラメーターの抽出
新しいパラメーター greeting がオプションのパラメーターとして抽出されます。 新しいパラメーターは、関数デフォルトパラメーター構文を使用して greeter() の定義に追加されます。 greeter() の呼び出しは変わりません。
例 2: 必要なパラメーターの抽出
この例では、必須パラメーターとして新たなパラメーター greeting が抽出されています。 対応する関数呼び出し(document.body.innerHTML = greeter(user); はそれに応じて変更されます。
パラメーターを導入する
エディターで、パラメーターに変換する式内にキャレットを置き、 Ctrl+Alt+P を押すか、コンテキストメニューから を選択します。

または、次のいずれかを実行します:
Ctrl+Alt+Shift+T を押して を選択します。
に進みます。
現在のキャレット位置で複数の式が検出された場合は、 式 リストから必要な式を選択します。

選択した式が複数出現する場合は、 複数の出現箇所が見つかりました リストから この出現箇所だけを置換 または 出現箇所をすべて置換 を選択してください。 最後に、リファクタリング設定用のポップアップが表示されます。

JSDoc の生成 を選択すると、 JSDoc(英語) コメントブロックが生成されます。 これは、カスタムのデフォルトパラメーター値を指定する必要がある場合に役立ちます。
新しいパラメーターを初期化する場所を選び、該当する場合はデフォルト値を指定します:
省略可能なパラメーター チェックボックスが選択されている場合、パラメーターはファンクション本体のデフォルト値で初期化されます。
省略可能なパラメーター チェックボックスをオフにすると、既定のパラメーター値が既存の関数呼び出しを介して渡されます。 新しい関数シグネチャーに従ってすべての関数呼び出しが変更され、パラメーターの初期化が関数本体に追加されます。
最初は、WebStorm はリファクタリングの呼び出し元の式をデフォルト値として受け入れます。 ほとんどの場合、変更する必要はありません。 それでも必要な場合は、JSDoc コメントに
@param <parameter name> - <default value>の形式で別のデフォルト値を指定してください。TypeScript オフィシャル Web サイト(英語)のオプションパラメーターとデフォルトパラメーターの詳細を参照してください。
候補リストからパラメーター名をダブルクリックして選択するか、キャンバスのフィールドにカスタム名を指定してください。 準備ができたら Enter を押します。

リファクタリングモードの選択
エディターで変数を抽出(インプレースモードで) 上述のように行うか、 パラメーターの導入ダイアログ を使うこともできます。 この2つのアプローチはかなり似ていますが、違いは次のとおりです:
ダイアログで、 プレビュー をクリックして、 検索 ツールウィンドウの専用タブで予想される変更を確認できます。 インプレースモードでは、この機能は使用できません。
WebStorm のダイアログの 値 フィールドにデフォルトのパラメーター値が表示されます。提案を受け入れるか、別の値を入力します。 インプレースモードの場合、WebStorm はリファクタリングを呼び出した式をデフォルトのパラメーター値として扱います。 他の値を指定する場合は、JSDoc コメントブロックを使う必要があります。
変数の導入
式を 関数スコープ変数 (var)(英語)、 ブロックスコープ変数 (let)(英語)、 ブロックスコープ定数 (const)(英語) に置き換えるには、 変数の導入リファクタリングを使用します。 このリファクタリングにより、ソースコードの読み取りと保守が容易になります。 また、値や目的の説明がないままハードコードされた定数の使用を避けるのにも役立ちます。
変数を導入する
エディターで、変数に変換する式を選択し、 Ctrl+Alt+V を押して、コンテキストメニューから を選択します。
または、次のいずれかを実行します:
Ctrl+Alt+Shift+T を押して を選択します。
に進みます。
現在のキャレット位置で複数の式が検出された場合は、 式 リストから必要な式を選択します。

選択した式が複数出現する場合は、 複数の出現箇所が見つかりました リストから この出現箇所だけを置換 または 出現箇所をすべて置換 を選択してください。

最後に、リファクタリング設定用のポップアップが表示されます。
リストから新しい変数の宣言に使用するステートメントを選択します:
var を選択すると、 関数スコープ変数を導入できます。 この変数は、囲んでいる関数内または関数の外で宣言できます。
let を選択して ブロックスコープ変数(英語)を導入します。
const を選択すると、 ブロックスコープ定数を導入できます。

候補リストからパラメーター名をダブルクリックして選択するか、キャンバスのフィールドにカスタム名を指定してください。 準備ができたら Enter を押します。
リファクタリングモードの選択
上記のように(インプレースモードで)エディターで変数を抽出するか、 変数の導入ダイアログ を使用できます。 デフォルトでは、WebStorm はインプレースモードでIntroduce Variableリファクタリングを実行します。 変数の導入 ダイアログを使用するには、 設定 ダイアログ(Ctrl+Alt+S )を開き、 エディター | コード編集 に移動して、 リファクタリング 領域で モーダルダイアログ内 オプションを選択します。
定数の導入
定数の導入リファクタリングを使用して、式を 定数(英語)に置き換えます。 このリファクタリングにより、ソースコードの読み取りと保守が容易になります。 また、値や目的の説明がないままハードコードされた定数の使用を避けるのにも役立ちます。
Department name: がハードコードされたコードのフラグメントがあるとします。
定数の導入リファクタリングを使用すると、ハードコードされた Department name を定数に置き換えることができます。 抽出された定数のスコープは、新しい定数が宣言されているコンテキスト(囲んでいるメソッド内、クラスのフィールド、クラス外)に依存します。
例 1: 定数 departmentName を導入し、それを printName() メソッド内で宣言します
例 2: 定数 departmentName を導入し、それをクラス AccountingDepartment の _departmentName フィールドとして宣言します
例 3: 定数 departmentName を導入し、いずれのクラスにも属さずに宣言します
定数を導入する
エディターで、定数に変換する式を選択して Ctrl+Alt+C を押すか、コンテキストメニューから を選択します。
または、次のいずれかを実行します:
Ctrl+Alt+Shift+T を押して を選択します。
に進みます。

現在のキャレット位置で複数の式が検出された場合は、 式 リストから必要な式を選択します。

新しい定数のスコープを選択します:
ローカル定数 は囲むメソッド内で宣言されます。詳細は 例 1を参照してください。
クラスフィールド は現在のクラス内で宣言されます。詳細は 例 2を参照してください。
グローバルまたはモジュール定数 はどのクラスの外でも宣言されます。詳細は 例 3を参照してください。
WebStorm は、選択したスコープに応じて抽出した定数が宣言される場所を示すツールチップを表示します。

WebStorm が式の複数の出現を検出した場合、すべてを置換するか、リファクタリング呼び出し箇所のみ置換するか選択できます。

候補リストからパラメーター名をダブルクリックして選択するか、キャンバスのフィールドにカスタム名を指定してください。 準備ができたら Enter を押します。

フィールドの導入
フィールドの導入リファクタリングでは、新しいフィールドが宣言され、選択された式で初期化されます。 元の式はフィールドの使用箇所に置き換えられます。
次のコードがあるとします:
以下の 3 つの例すべてで、同じフィールド _calcArea が導入されています。 例は、導入されたフィールドを初期化する 3 つの異なる方法を示しています。
例 1: フィールド _calcAreais を導入し、囲んでいるメソッド get Area () で初期化します
例 2: フィールド _calcAreais を導入し、それを宣言で初期化します
例 3: フィールド _calcAreais を導入し、クラスのコンストラクターで初期化します
フィールドを導入する
エディターで、定数に変換する式を選択して Ctrl+Alt+F を押すか、コンテキストメニューから を選択します。

または、次のいずれかを実行します:
Ctrl+Alt+Shift+T を押して を選択します。
に進みます。
WebStorm が式の複数の出現を検出した場合、すべてを置換するか、リファクタリング呼び出し箇所のみ置換するか選択できます。

ポップアップで新しいフィールドを初期化する場所を選択します:
現在のメソッド、 例 1 を参照。
フィールド宣言、 例 2 を参照。
コンストラクター は、 例 3 を参照してください。 フィールド初期化子からリファクタリングを呼び出す場合、このオプションは無効になることに注意してください。

フィールド宣言またはコンストラクターで初期化する場合、新しいフィールドに readonly 修飾子(英語)を付けることができます。 これを行うには、 読み取り専用にする チェックボックスをオンにします。
フィールドの表示を選択すると、使用可能なオプションは 公開、 非公開、 保護 です。 TypeScript オフィシャル Web サイト(英語)のフィールド可視性修飾子について学ぶ
候補リストからパラメーター名をダブルクリックして選択するか、キャンバスのフィールドにカスタム名を指定してください。 準備ができたら Enter を押します。
リファクタリングモードの選択
デフォルトでは、WebStorm は、エディター(インプレースモード)内でフィールド導入リファクタリングを実行します 上記の通り。
フィールド導入ダイアログを使う場合は、 設定 ダイアログ(Ctrl+Alt+S )を開き、 エディター | コード編集 へ移動し、 リファクタリング エリアで モーダルダイアログ内 オプションを選択します。

メソッドの抽出
メソッドの抽出リファクタリングでは、抽出されたコードで名前付きのメソッドまたは関数を作成できます。 メソッドの抽出リファクタリングを呼び出すと、WebStorm は選択されたコードフラグメントの入力変数と出力変数を検出します。 検出された出力変数は、抽出されたメソッドまたは関数の戻り値として使用されます。
例 1: 別のメソッド内の式からグローバルメソッドを抽出する
この例では、グローバルスコープのメソッド NewMethod() が let c = a + b; 式から抽出されます。 抽出されたメソッドのパラメーターは let c = a + b; 式から取得されます。
例 1.1: 関数宣言を生成する
例 1.2: 抽出された関数が式の中で宣言されている
例 2: 閉じたメソッドの中で宣言付きのメソッドを抽出する
この例では、 let c = a + b; 式からメソッド NewMethod() が抽出されます。 宛先範囲 function MyFunction が選択されます。
例 3: 任意のメソッドの外部の式からメソッドを抽出する
メソッド NewMethod() は、メソッド外の var e = MyFunction(4, 6); 式から抽出されます。 抽出されたメソッドはグローバルスコープです。
関数またはメソッドを抽出する
エディターで、関数に変換するコードフラグメントを選択し、 Ctrl+Alt+M を押すか、コンテキストメニューから を選択します。
または、次のいずれかを実行します:
Ctrl+Alt+Shift+T を押して を選択します。
に進みます。
選択した式が別の関数内にある場合は、リストから抽出先のスコープを選択してください。 WebStorm は、抽出された関数/メソッドが宣言される場所を示すツールチップを表示します:

関数の抽出関数の抽出 ダイアログを開いてさらにオプションを表示するには、もう一度 Ctrl+Alt+M を押します。 このダイアログでは、抽出された関数を生成された 関数宣言(英語)または 式内で宣言するかどうかを選択し、パラメーターとして渡される変数のセットを構成できます。 上記の例を参照してください。
デフォルトで関数抽出ダイアログを開く
設定 ダイアログ(Ctrl+Alt+S )を開き、 エディター | コード編集 に移動して、 リファクタリング 領域で モーダルダイアログ内 オプションを選択します。
型エイリアスの抽出
このリファクタリングを使用して、型宣言式を 型エイリアス(英語)に変換し、この式のすべての出現箇所をこのエイリアスに置き換えます。
{ z: number } 型の宣言を持つコードの断片があるとします。
以下の例では、型エイリアス MyNewAlias が { z: number } 型宣言から抽出されています。
型エイリアスを抽出する
エディターで、型エイリアスに置き換える式内にキャレットを置き、コンテキストメニューから を選択するか、メインメニューから を選択します。
現在のキャレット位置で複数の式が検出された場合は、 式 リストから必要な式を選択します。

選択した式が複数出現する場合は、 複数の出現箇所が見つかりました リストから この出現箇所だけを置換 または 出現箇所をすべて置換 を選択してください。

キャンバス付きのフィールドに型エイリアスの名前を入力し、準備ができたら Enter を押します。

スーパークラスの抽出
スーパークラスの抽出リファクタリングは、現在のクラスのメンバーに基づいて新しい抽象クラスを作成します。 作成された抽象クラスは自動的に拡張されます。
クラス AccountingDepartment を持っていて、そこからの printName() メソッドが再利用されることを期待しているとします。
スーパークラス Department を抽出し、その中に printName と Name フィールドを含めることができます。
スーパークラスを抽出する
スーパークラスを抽出するクラス内の任意の場所にキャレットを配置します。
メインメニューから を選択するか、コンテキストメニューから を選択します。 「スーパークラスの抽出 」ダイアログが開きます。
新しいスーパークラスの名前を指定し、そこに含めるクラスメンバーの横にあるチェックボックスを選択します。
宛先ファイル フィールドに、新しいクラスが配置されるファイルの場所を指定します。 デフォルトでは、フィールドにはリファクタリングが呼び出された現在のファイルへのパスが表示されます。

スーパークラスの抽出 を選択します。 WebStorm は新しいクラスを作成し、ソースクラスを
extendsでマークします。スーパークラスを作成し、ソースクラスへの参照をメソッドのパラメーター内のスーパークラスへの参照に置き換えるには、 スーパークラスを抽出し、可能な限り使用する を選択します。 WebStorm は、提案された変更を リファクタリングプレビュー ペインの 検索 ツールウィンドウに表示します。
インターフェースの抽出
インターフェースの抽出 リファクタリングは、現在のクラスのメンバーに基づいて新しいインターフェースを作成します。 作成されたインターフェースは自動的に実装されます。
クラス AccountingDepartment を持っていて、そこからの generateReports() メソッドが他の実装を持つことを期待しているとします。
DepartmentInterface インターフェースを抽出し、その中に generateReports() を含めることができます。
インターフェースを抽出する
インターフェースを抽出するクラス内の任意の場所にキャレットを配置します。
メインメニューから を選択するか、コンテキストメニューから を選択します。 「インターフェースの抽出 」ダイアログが開きます。
新しいインターフェースの名前を指定し、そこに含めるクラスメンバーの横にあるチェックボックスを選択します。
宛先ファイル フィールドに、新しいインターフェースが配置されるファイルの場所を指定します。 デフォルトでは、フィールドにはリファクタリングが呼び出された現在のファイルへのパスが表示されます。
インターフェースの抽出 を選択します。 WebStorm は新しいインターフェースを作成し、ソースクラスをその実装としてマークします。
インターフェースを作成し、ソースクラスへの参照をメソッドのパラメーター内のインターフェースへの参照に置き換えるには、 インターフェースを抽出し、可能であれば使用する を選択します。 WebStorm は、提案された変更を リファクタリングプレビュー ペインの 検索 ツールウィンドウに表示します。
オブジェクトまたは配列の分割代入を導入
構造化を使用すると、配列やオブジェクトの値を変数に簡単に展開できます。 この機能には非常に簡潔な構文があり、アプリケーションでデータを渡す必要があるときによく使用されます。 詳細については、 TypeScript オフィシャル Web サイト(英語)を参照してください。
WebStorm ではインテンションアクション Alt+Enter を使い分割代入を実行できます。 オブジェクト / 配列の分割代入に置き換えるアクションを使用すると、元の割り当てが削除されます。 割り当てを維持するには、 オブジェクト / 配列の分割代入を導入するを使用します。
元の割り当てを置き換える
配列またはオブジェクトの値にキャレットを置き、 Alt+Enter を押します。
リストから、 オブジェクトの分割代入に置換 または 配列の分割代入に置換 を選択します。
配列またはオブジェクトの値の一部が使用されていない場合、それらの要素はスキップされます:
元の割り当てを保持する
配列またはオブジェクトの値にキャレットを置き、 Alt+Enter を押します。
リストから、 オブジェクトの分割代入を導入する または 配列の分割代入を導入する を選択します。
関数の分解パラメーターを生成する
関数のパラメーターにキャレットを置き、 Alt+Enter を押します。
リストから パラメーターをオブジェクトに変換する を選択します。

インライン化リファクタリング
インラインリファクタリングは 抽出リファクタリングの逆です。
例 1: 変数のインライン化
変数のインライン化リファクタリングは、変数または定数の冗長な使用箇所をそのイニシャライザーに置き換えます。 この型のリファクタリングは、ブロックスコープおよび関数スコープの変数でのみ使用できます。
例 2: メソッドのインライン化
インラインメソッド/インライン関数リファクタリングは、メソッドや関数の本体を呼び出し元の本体に挿入する結果となり、メソッド/関数自体は削除されます。
以下の例では、 Sum() の本体が Multiplication() の本体に配置されています。
インラインで実行リファクタリング
エディターで、インライン化するシンボルにキャレットを置き、 Ctrl+Alt+N を押すか、コンテキストメニューまたはメインメニューから を選択します。
選択したシンボルに対応する インライン化 ダイアログで、インラインリファクタリングを確認します。

シグネチャーの変更リファクタリング
シグネチャーの変更リファクタリングを使用して、関数の名前、可視性、戻り値の型を変更し、パラメーターの追加、削除、並べ替え、名前の変更、呼び出しの階層を介した新しいパラメーターの伝播を行います。
また、 パラメーター導入リファクタリングを利用してパラメーターを追加できます。
以下の例では、関数 eat() の名前が feed() に変更され、新しい boolean パラメーター isMammal が導入されています。
シグネチャーの変更を呼び出す
エディターで、リファクタリングする関数の名前内にキャレットを置き、 Ctrl+F6 を押すか、コンテキストメニューまたはメインメニューから リファクタリング | シグネチャーの変更 を選択します。 「シグネチャーの変更 」ダイアログが開きます。
Rename a function
シグネチャーの変更 ダイアログ Ctrl+F6 で、 名前 フィールドを編集します。
関数の戻りの型を変更する
戻り値の型 フィールドに、関数が返す値の型を指定します。 フィールドが空の場合、戻り値の型は
voidとして扱われます。 TypeScript オフィシャル Web サイト(英語)の return の種類について詳しくは、こちらを参照してください。
関数の可視性を変更する
可視性 リストから、 関数修飾子を選択します。使用可能なオプションは、 public (デフォルト)、 private 、および protected です。
関数パラメーターを管理する
シグネチャーの変更 ダイアログ Ctrl+F6 では、パラメーターのテーブルとその右側のボタンを使用します。
パラメーターを追加するには、
Alt+Insert をクリックして、新しいパラメーターの名前とその型を指定します。 パラメーターのデフォルト値または関数呼び出しを介して渡される値を指定します。
必要に応じて、現在の関数を呼び出す関数に 新しいパラメーターを伝達します。
パラメーターを削除するには、対応する行のセルのいずれかをクリックして、
Alt+Delete をクリックします。
パラメーターを並べ替えて、必須パラメーターがオプションのパラメーターの前にリストされるようにするには、
Alt+Up、
Alt+Down を使用します。 TypeScript オフィシャル Web サイト(英語)の必須およびオプションのパラメーターの詳細を参照してください。
パラメーターの名前を変更するには、 名前 フィールドを編集します。
呼び出しの階層に沿ってパラメーターを伝搬する
シグネチャーの変更 ダイアログ Ctrl+F6 で、パラメーターを選択し、
をクリックします。 新規パラメーターを伝播するメソッドの選択 ダイアログが開きます。 左側のペインには、関数呼び出しの階層が表示されます。 関数を選択すると、右側のペインのコードと、 呼び出し元メソッド フィールドと 呼び出し先メソッド フィールドにそれぞれ呼び出される関数のコードが表示されます。左側のペインで、パラメーターを伝播する機能の横にあるチェックボックスを選択し、 OK をクリックします。
変更をプレビューしてリファクタリングを完了する
シグネチャーの変更 ダイアログ Ctrl+F6 で、 プレビュー をクリックします。
リファクタリングプレビュー タブがある 検索ツールウィンドウで、 予想される変更を表示し、必要な調整を行い、準備ができたら リファクタリング実行 をクリックします。
デフォルトのエクスポートを名前付きエクスポートに変換する
クラス、関数、定数変数、文字列、オブジェクト、型の場合、 export default ステートメントを名前付き export ステートメントに置き換え、対応する import ステートメントをそれに応じて更新することができます。
シンボルが再エクスポートされると、対応する export ステートメントも更新されます。
リファクタリングは、 export default ステートメントと import ステートメントの両方から呼び出すことができます。
export defaultステートメントまたはエクスポート対象の名前にキャレットを置き、 Alt+Enter を押して デフォルトのエクスポートを名前付きエクスポートに変換する を選択します。 プレビューを切り替えるには、 Ctrl+Q を押します。
importステートメント内で、インポート対象の名前にキャレットを置き、 Alt+Enter を押して デフォルトのエクスポートを名前付きエクスポートに変換する を選択します。 プレビュー(Ctrl+Q )に、importステートメントがどのように更新されるかが表示されます。
名前付きエクスポートをデフォルトエクスポートに変換する
クラス、関数、定数変数、文字列、オブジェクト、型の場合、名前付き export ステートメントを export default ステートメントに置き換え、対応する import ステートメントをそれに応じて更新することができます。
リファクタリングは、 export default ステートメントと import ステートメントの両方から呼び出すことができます。
exportステートメント内でエクスポートする項目の名前にキャレットを置き、 Alt+Enter を押して 名前付きエクスポートをデフォルトエクスポートに変換する を選択します。 プレビューを切り替えるには、 Ctrl+Q を押します。
importステートメント内で、インポート対象の名前にキャレットを置き、 Alt+Enter を押して 名前付きエクスポートをデフォルトエクスポートに変換する を選択します。 プレビュー(Ctrl+Q )に、importステートメントがどのように更新されるかが表示されます。