RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-04-28中級

Rork が生成したコードの TypeScript 型エラーが消えない時に試す5つの修正パターン

Rork が出力した React Native コードで TypeScript の型エラーが何度修正しても消えない時に、まず疑うべき5つのパターンと具体的な書き換え方を、実例とともにまとめました。

Rork515TypeScript8React Native209型エラーデバッグ22AI 生成コード

Rork で生成したコードを VS Code で開いた瞬間、赤い波線が画面いっぱいに走っている経験はないでしょうか。そのままプロンプトに「型エラーを直して」と打ち込んでも、AI は別の場所で同じエラーを再発させ、修正と破壊を行ったり来たりすることがあります。

私がいくつかのアプリを Rork で作ってみて気づいたのは、しつこく残る型エラーには共通したパターンがあるということです。AI に丸投げして直らない場合は、人間側で型を一度だけ整えてあげると、その後の生成が驚くほど安定します。今回はそのときに役立つ5つの修正パターンを、実際のコード例とともに紹介します。

パターン1: 暗黙の any(Props の型未定義)

最もよく見るのが、コンポーネントの props に型を付け忘れているパターンです。AI は機能を急いで実装したいので、型定義を後回しにすることがあります。

// ❌ Rork がよく出すコード(暗黙の any)
export function ProductCard({ name, price, onPress }) {
  return (
    <Pressable onPress={onPress}>
      <Text>{name}</Text>
      <Text{price.toLocaleString()}</Text>
    </Pressable>
  );
}
// → strict モードで「Parameter 'name' implicitly has an 'any' type」が無限に出る

修正は型エイリアスを切り出して props に付けます。

// ✅ 型を付けて再生成を安定させる
type ProductCardProps = {
  name: string;
  price: number;
  onPress: () => void;
};
 
export function ProductCard({ name, price, onPress }: ProductCardProps) {
  return (
    <Pressable onPress={onPress}>
      <Text>{name}</Text>
      <Text{price.toLocaleString()}</Text>
    </Pressable>
  );
}

このコンポーネントを次に AI に編集させると、型を維持したまま追加実装してくれることが増えます。型は AI への暗黙のドキュメントとして機能します。

パターン2: useState の型推論ミス

useState(null)useState([]) のような初期値だけだと、TypeScript は null 型や never[] 型と推論してしまい、後で値を入れた時に型エラーが噴出します。

// ❌ never[] と推論されて push できない
const [items, setItems] = useState([]);
setItems([...items, { id: 1, name: "コーヒー" }]); // 型エラー
 
// ❌ null しか入らないと推論される
const [user, setUser] = useState(null);
setUser({ name: "Masaki" }); // 型エラー

ジェネリクスで「これから何を入れるのか」を明示します。

// ✅ 入れたい型を最初に教える
type Item = { id: number; name: string };
const [items, setItems] = useState<Item[]>([]);
 
type User = { name: string } | null;
const [user, setUser] = useState<User>(null);

ここを直すと、画面遷移後の API レスポンス処理まで一気に型が通ることが多いです。状態関連で「画面が更新されない」という別の問題が出ていたら、Rork で state が更新されない・再描画されない時の対処法 も併せて確認してみてください。

パターン3: ライブラリ型定義の不整合(@types の欠落)

Expo や React Navigation のような大型ライブラリを Rork が組み込んだ時、対応する型定義パッケージが入っていないことがあります。VS Code の Problems パネルに「Could not find a declaration file for module '...'」と出ていたら、これが原因です。

# ❌ よくあるエラー
# Could not find a declaration file for module 'react-native-svg'
 
# ✅ 型定義をインストール(Expo SDK の管理下なら expo install を優先)
npx expo install react-native-svg
 
# 公式が型定義を内包していない古めのライブラリの場合
npm install --save-dev @types/lodash

Rork 上で動かしている場合は、プロンプトで「react-native-svg の型定義を含めて再構成して」と明示的に指示すると、expo install を含む手順を生成してくれます。

パターン4: ナビゲーション param 型の食い違い

React Navigation を使ったコードで一番厄介なのが、画面遷移パラメータの型エラーです。AI は画面ごとにバラバラな型を生成しがちで、navigate の引数で必ずエラーが出ます。

// ❌ 各画面で別々に型を書いていて整合性が取れない
type DetailParams = { productId: number };
navigation.navigate("Detail", { productId: "abc" }); // 数値と文字列でズレる

ルーター全体の param 型を1か所に集約します。

// ✅ ルートパラメータを単一の型として定義
export type RootStackParamList = {
  Home: undefined;
  Detail: { productId: number };
  Profile: { userId: string };
};
 
// 各画面はこの型を参照する
type DetailScreenProps = NativeStackScreenProps<RootStackParamList, "Detail">;
 
export function DetailScreen({ route, navigation }: DetailScreenProps) {
  const { productId } = route.params; // 型が一意に決まる
  return <Text>{productId}</Text>;
}

RootStackParamListApp.tsx の近くに置いておくと、Rork は次回の生成からこの型を参照するようになります。

パターン5: AI が as any でごまかしている時の直し方

最後に注意したいのが、何度も型エラーを直させると AI が as any で黙らせるパターンです。コンパイルは通りますが、本番でクラッシュする原因になります。

// ❌ AI が逃げに使うパターン
const data = (response as any).items.map((x: any) => x.name);

検索コマンドで as any の数を可視化して、計画的に削っていきます。

# プロジェクト全体の "as any" を数える
grep -rn "as any" src/ | wc -l
 
# 一覧で確認
grep -rn "as any" src/

代替として、API レスポンスは Zod や TypeScript の型ガードで安全に絞り込みます。

// ✅ Zod で実行時バリデーション + 型推論
import { z } from "zod";
 
const ItemSchema = z.object({ id: z.number(), name: z.string() });
const ResponseSchema = z.object({ items: z.array(ItemSchema) });
 
const parsed = ResponseSchema.parse(response);
const names = parsed.items.map((x) => x.name); // 型が string[] に確定

AI が再び as any を入れてきたら、プロンプトで「as any を使わずに型ガードで実装して」と明示するのが効きます。Rork の AI が以前のコードを上書きしてしまう挙動が気になる場合は、Rork の AI に既存コードを壊されない指示の出し方 も参考になります。

全体を振り返って — まず1ファイルだけ型を整える

5つのパターンを紹介しましたが、一度に全部直そうとすると挫折しやすいです。私のおすすめは、今いちばんよく触っている1ファイルだけを完璧に型付けすることです。そのファイルが「型のお手本」になり、AI は次の生成からそれに合わせてくれます。

useEffect 関連のエラーが TypeScript エラーと混在している場合は、Rork の useEffect 無限ループを解消するデバッグ手順 で根本原因を切り分けてから型を整えると、より早く安定状態に到達できます。

シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

開発ツール2026-07-13
WebViewのpostMessageは投げたら終わり — 相関IDで要求と応答を結ぶブリッジを設計する
WebView と React Native の postMessage は片道通信で、送った処理が成功したのか分かりません。相関IDと応答を組み込んだ要求・応答型ブリッジを、動く TypeScript コードで設計します。
開発ツール2026-06-20
Rork が直せるバグと自分で直すバグを見分ける — エクスポートコードのトリアージ手順
Rork が自力で直すバグと、エクスポートしたReact Native/Expoコードを自分で手当てすべきバグを切り分けるトリアージ手順を、動くコードとともに整理しました。
開発ツール2026-06-17
Rork が自分で直せない3割を見極める — エクスポート前提の手直しワークフロー
Rork は遭遇したバグのおよそ7割を自力で直しますが、残り3割は手作業が必要です。再プロンプトで粘るべきか、エクスポートして自分で直すべきかを切り分ける判断基準と、動くコードでの手直し例をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →