本文へ移動
Develop Tools
← 使い方ガイドへ戻る

TypeScriptコードをChatGPT・AIへ安全に貼る方法|型名・API情報をマスキング

TypeScriptコードには型名だけでなく、API URL、環境変数名、Property、Import Path、Token、Storage Keyが残ります。必要な最小範囲を共有用コピーへ切り出して確認します。

TypeScriptコードを最小範囲へ切り出しブラウザ内でマスキングしてAIへ共有する流れ
TypeScriptコードを最小範囲へ切り出しブラウザ内でマスキングしてAIへ共有する流れ

TypeScriptコードをブラウザ内でマスキングする

クラス・型、関数・メソッド、識別子、値、コメントを選び、共有用コピーを作成します。入力コードと結果はDevelop Toolsのサーバーへ送信・保存されません。

TypeScriptコードマスキングツールを開く

結論

元Projectではなく共有用コピーを作り、型名・関数名・変数名・文字列・数値・コメントをマスキングします。TypeScript Version、tsconfig、エラー文は残し、satisfies、Import Path、標準API、JSX、Decorator、Directiveを元コードと比較してから共有します。

元Projectを直接編集せず、共有用コピーで作業してください。

共有前のBefore・Afterを確認する

type CustomerResponse = {
  customerId: string;
  customerName?: string;
};

export async function fetchCustomer(id: string): Promise<CustomerResponse> {
  const response = await fetch(`https://internal.example.local/customers/${id}`, {
    headers: { Authorization: `Bearer ${process.env.INTERNAL_API_TOKEN}` }
  });
  return response.json() as Promise<CustomerResponse>;
}

fetch、Authorization、process.env、Template Literal内のURLも置換され得ます。Afterはそのまま実行せず、共有に必要な構造が残ったかを確認します。

TypeScriptコードマスキングツールで確認する手順

  • 1. 再現に必要な型・関数だけを別コピーへ切り出す
  • 2. TypeScript・Runtime・Framework VersionとErrorを別メモへ残す
  • 3. 型・関数・識別子・値・コメントを選んでマスキングする
  • 4. 標準API・Directive・TSXを比較し、結果だけを共有する

見落としを防ぐ確認表

分類確認対象
Typeinterface、type、Generic、Union
RuntimeAPI URL、Token、Storage Key、環境変数
ModuleImport Path、Package、Path Alias
FrameworkJSX、Hook、Directive、Decorator

TypeScriptの静的型とJavaScriptの実行時を分ける

確認する内容型だけでは保証できないこと
TypeScript Compiler型注釈、Union、Generic、Narrowing、TSConfigAPIやStorageから届く実データの内容
JavaScript RuntimeBrowser・Node.jsで存在する値と例外interfaceやtype aliasは通常のJavaScript出力に残らない
外部入力API JSON、Form、Local Storage、環境変数型アサーションだけでは検証・変換されない
FrameworkReact Props、Next.js Server / Client境界、DirectiveTypeScriptの型検査とは別のRuntime制約がある

「TypeScriptで型を付けた」と「実行時データを検証した」は別です。外部入力はunknownから絞り込むか、Schema Validator等で検証してください。

マスキング後にTypeScript固有の構造を目視確認する

  • interface、type、class、enum、Generic Parameter、Constraint、Union、Optionalの対応を比較する
  • satisfies、as const、型アサーション、Conditional Type、infer、Mapped Typeの記号と位置を確認する
  • fetch、localStorage、process.env等の標準・Runtime APIとProperty名が必要なら個別に戻す
  • import type、Import Path、Path Alias、.mts・.ctsのModule境界を元コードと比較する
  • TSXのTag・Attribute、React Hook、Next.jsのuse client / use serverを重点確認する
  • Decorator名・引数・Metadata、環境変数参照、Template Literal Typeは共有用コピーとして慎重に扱う

必要な構造だけを戻す場合も、結果側を右クリックして解除した文字列に秘密情報が含まれないか再確認してください。

コード以外の情報を分けて安全に共有する

情報確認方法
TypeScript・TSXTypeScriptコードマスキングツールで型名・関数名・識別子・値・コメントを置換する
React固有コードReactコードマスキングガイドも参照し、JSX・Hook・Propsを確認する
API JSONJSONマスキングツールでKey・Value・配列構造を確認する
Stack Trace・Build LogログマスキングツールでPath・Package・ID・Token・Messageを確認する
tsconfig・.env必要なOption・Keyだけを別コピーへ抜き出し、Path・Alias・値をDummyへ置換する

Token、Cookie、Authorization Header、Source Map、内部Package名、Private Registry URLが漏れた場合は、マスキングだけでなく失効・再発行も検討してください。

現行TypeScriptコードマスキングツールの対応範囲を確認する

確認項目現行ツールの対応共有前の注意
入力TypeScript・TSXテキストの貼り付け.ts・.tsx・tsconfig.json・Project一式の直接読込には対応しない
分類クラス・型、関数・メソッド、識別子、値、コメントTypeScript Compiler、AST Parser、ESLintと同等の意味解析ではない
型構文interface、type、enum、Generic、Union、Optional等の外形を概ね保持satisfiesやTemplate Literal Typeが置換され、構文が壊れる場合がある
標準API一般識別子として置換され得るfetch、useMemo、localStorage、process.env、Property名が必ず保持されるわけではない
TSX・FrameworkTypeScriptとして処理JSX Tag・Attribute、use client / use server、Decorator Metadataを完全解析しない
Importimport / export構文の外形を概ね保持Import Path、Package名、Path Alias、import typeの参照先が置換され得る
操作結果コピー、全消去、結果側の右クリックによる個別解除・再適用解除した元情報が共有に必要か送信前に再確認する
保存表示設定だけをLocalStorageへ保存入力、結果、対応表、履歴をDevelop Toolsのサーバーへ送信・保存しない

マスキング結果は共有用コピーです。tsc、Build、Runtime実行が成功するコードや完全匿名化を保証しません。

Versionと公式資料を照合する

TypeScript、Node.js、React、Next.jsはVersionやModule設定で挙動が変わります。TypeScript Version、tsconfigの関連Option、Runtime、Framework Version、.ts・.tsx・.mts・.ctsのFile種別を記録し、対象Versionの公式資料とTest結果を照合してください。

具体例:tscの型エラーをAIへ相談

元Projectではなく共有用コピーを作り、型名・関数名・変数名・文字列・数値・コメントをマスキングします。TypeScript Version、tsconfig、エラー文は残し、satisfies、Import Path、標準API、JSX、Decorator、Directiveを元コードと比較してから共有します。

実Token、実顧客情報、内部Pathではなくexample.testやDummy値を使い、問題を再現する最小範囲で確認します。

  1. 最小再現コードを共有用コピーへ切り出す
  2. 型・識別子・値・コメントをマスキングする
  3. TypeScript構文とRuntime Contextを比較する
  4. マスキング結果だけを共有する

結果側の対象は右クリックで個別解除・再適用できます。戻した元情報が本当に必要か、送信前に再確認してください。

よくある質問

.ts・.tsxファイルやProjectを直接読み込めますか?
直接読込には対応していません。必要なTypeScript・TSXテキストを入力欄へ貼り付けます。tsconfigやPackageのProject解析も行いません。
マスキング後のコードはtscやBuildを通りますか?
保証しません。satisfies、Import Path、標準API、JSX Tag・Attribute、Decorator、Directive、Template Literal Typeが変化する場合があるため、共有用コピーとして元コードと比較してください。
入力したTypeScriptコードはサーバーへ送信されますか?
入力とマスキング結果はブラウザ内で処理され、Develop Toolsのサーバーへ送信・保存されません。LocalStorageへ保存されるのは表示設定だけです。