PrismaからTypeScript
PRISMA 3 / 4 / 5 / 6 COMPATIBLE

Prisma スキーマから TypeScript 型定義への変換ジェネレーター

Prismaスキーマのmodelやenum、リレーションを解析し、Prisma Clientランタイム不要の純粋なTypeScript型定義(interface / type)を即時生成。

プリセット:
Prisma スキーマ入力schema.prisma
/**
 * Standalone TypeScript Definitions
 * Generated from Prisma Schema without Prisma Client runtime
 * Generated via ToolsAA Prisma-to-TypeScript Engine
 */

// ==========================================
// Enums
// ==========================================

export enum Role {
  CUSTOMER = 'CUSTOMER',
  VENDOR = 'VENDOR',
  ADMIN = 'ADMIN',
}

export enum OrderStatus {
  PENDING = 'PENDING',
  PROCESSING = 'PROCESSING',
  SHIPPED = 'SHIPPED',
  DELIVERED = 'DELIVERED',
  CANCELLED = 'CANCELLED',
}

// ==========================================
// Models & Types
// ==========================================

/**
 * User customer or merchant account
 * @table users
 * @id [id]
 */
export interface User {
  id: string; // @id @default(uuid()
  email: string; // @unique
  name?: string | null;
  role: Role; // @default(CUSTOMER)
  walletBalance: number; // @default(0.00)
  createdAt: Date; // @default(now()
  updatedAt: Date; // @updatedAt
  orders?: Order[]; // @relation
  profile?: UserProfile | null; // @relation
}

/**
 * @id [id]
 */
export interface UserProfile {
  id: string; // @id @default(cuid()
  userId: string; // @unique
  user?: User; // @relation
  phone?: string | null;
  address?: string | null;
  city?: string | null;
  country: string; // @default("US")
  metadata?: Record<string, unknown> | null;
}

/**
 * @table products
 * @id [id]
 */
export interface Product {
  id: number; // @id @default(autoincrement()
  sku: string; // @unique
  title: string;
  description?: string | null;
  price: number;
  inventory: number; // @default(0)
  isPublished: boolean; // @default(true)
  categoryId?: number | null;
  category?: Category | null; // @relation
  orderItems?: OrderItem[]; // @relation
  createdAt: Date; // @default(now()
}

/**
 * @id [id]
 */
export interface Category {
  id: number; // @id @default(autoincrement()
  slug: string; // @unique
  name: string;
  products?: Product[]; // @relation
}

/**
 * @table orders
 * @id [id]
 */
export interface Order {
  id: string; // @id @default(uuid()
  orderNumber: string; // @unique
  userId: string;
  user?: User; // @relation
  status: OrderStatus; // @default(PENDING)
  totalAmount: number;
  items?: OrderItem[]; // @relation
  createdAt: Date; // @default(now()
  updatedAt: Date; // @updatedAt
}

/**
 * @id [id]
 */
export interface OrderItem {
  id: number; // @id @default(autoincrement()
  orderId: string;
  order?: Order; // @relation
  productId: number;
  product?: Product; // @relation
  quantity: number; // @default(1)
  unitPrice: number;
}
Prisma モデル数
6

抽出されたデータモデルと列挙型

TypeScript 型定義
116

生成されたインターフェースとヘルパー

ランタイム依存ゼロ
0 kB

Prisma Client やバイナリ不要の軽量型定義

ブラウザ内完結の構文解析エンジン

Node.js や Prisma CLI を介さず、モデル、列挙型、複合属性(@@id, @@unique, @@map)、デフォルト値、リレーションをブラウザ上で直接構文解析します。

完全プライバシー保護

データベーススキーマや内部アーキテクチャ定義が外部サーバーに送信されることはありません。完全ローカル処理で機密情報を保護します。

TypeScript & Zod 完全対応

フロントエンド、サーバーレス関数、モノレポ共有型定義、そして同型 Zod バリデーションスキーマを即座に生成します。

技術リファレンス&アーキテクチャガイド

Prismaスキーマ TypeScript 型定義変換ガイド — リファレンスガイド

Prismaスキーマのmodelやenum、リレーションを解析し、Prisma Clientランタイム不要の純粋なTypeScript型定義(interface / type)を即時生成。

主要パラメータ&設定項目

宣言形式Enum (interface | type)

出力するTypeScriptの型構文(インターフェースまたは型エイリアス)。

初期値: interface
リレーションの含有Boolean

モデル間の関連フィールド(Post[] や author User など)を出力型に含めるかどうか。

初期値: true
DateTime の型表現Enum (Date | string | Date | string)

PrismaのDateTimeスカラー型をマッピングするTypeScriptの型定義。

初期値: Date
オプショナル項目の記法Enum (nullable | optional | both)

PrismaのNullableフィールド(?)を null 共用体、? 属性、または両方で表現するかの指定。

初期値: both
Enum 出力形式Enum (enum | const-object | union)

PrismaのenumをTypeScriptのネイティブenum、constオブジェクト、または文字列Unionで出力。

初期値: enum

プロの活用テクニック&推奨設定

ランタイム不要のモノレポ型共有

重い @prisma/client やバイナリエンジンをフロントエンドやモバイルアプリに導入することなく、純粋な型定義ファイルとして軽量に共有できます。

SQL NULL と undefined の厳密な分離

Prismaの ? はデータベースのNULLを表します。'both' または 'nullable' を選択して T | null を維持することで、API境界での意図しないundefined混入を防ぎます。

フラットなDTO型の一括生成

リレーション項目の出力をオフにすることで、データベースの生レコードや挿入・更新用DTO(Data Transfer Object)に最適なフラット型を素早く作成できます。

よくあるトラブルと解決策

@@map や @@index などのPrisma属性によるパースエラー

@@map、@@index、@db.VarCharなどのPrisma独自属性はデータベースメタデータとして安全に無視され、純粋なプロパティ定義のみが抽出されます。

双方向リレーションによる型の循環参照

UserとPostが相互参照している場合、リレーション出力を無効化するか、関連モデルをPartial型に切り替えることで無限再帰を防ぐことができます。

Json や Decimal 型のデフォルト推論について

Jsonは Record<string, unknown>、Decimalは number | string にデフォルト変換されます。厳格なスキーマが必要な場合は生成後にジェネリクス型を適用してください。

よくある質問 (FAQ)

Prisma Client公式の型生成ではなく本ツールを使うメリットは何ですか?▼

Prisma Clientはクエリエンジンバイナリを含む重いランタイムに依存します。本ツールは純粋なTypeScript定義のみを生成するため、ブラウザやReact Native、エッジ環境でもバンドルサイズゼロで安全に利用できます。

Prismaスカラー型はどのようにTypeScriptへマッピングされますか?▼

Stringはstring、Int・Floatはnumber、Booleanはboolean、BigIntはbigint、DateTimeはDate(またはstring)、Decimalはnumber | string、JsonはRecord<string, unknown>へと正確にマッピングされます。

enumをネイティブEnumではなく文字列リテラルUnionとして出力できますか?▼

はい。TypeScriptネイティブのenum構文のほか、Tree-shakingに有利な as const オブジェクトや文字列Union(例: 'ADMIN' | 'USER')を選択可能です。

1対多や多対多のリレーション定義はサポートされていますか?▼

はい。モデル間の関連プロパティをネストされた型や配列型として含めるか、あるいは除外してフラットな単体レコード型にするかを自由に選択できます。

入力したPrismaスキーマは外部サーバーへ送信されますか?▼

いいえ。すべてのパースおよびコード生成処理はブラウザ内のローカルメモリ上で完結し、スキーマ定義が外部ネットワークへ送信されることは一切ありません。

関連するおすすめ開発ツール

すべてのツール →
OpenAPI & SwaggerからAxios TypeScript APIクライアント生成開発ツール

OpenAPI 3.0およびSwaggerのJSON/YAML仕様書から、型安全で保守性の高いAxios HTTPクライアント関数とパラメータインターフェースを自動生成します。

ツールを開く→
OpenAPI・Swagger ネイティブFetchクライアント自動生成 開発者向け技術リファレンス開発ツール

依存関係ゼロの標準Fetch APIを活用したTypeScriptクライアントコードを生成。クエリ文字列のシリアライズ、ヘッダー設定、型定義を自動完結。

ツールを開く→
Drizzle ORM スキーマから SQL CREATE TABLE DDL 生成ツール開発ツール

Drizzle ORM の pgTable、mysqlTable、sqliteTable 定義を高精度に解析し、実行可能な SQL CREATE TABLE マイグレーションスクリプトへと変換します。

ツールを開く→
GitHub Actions CI/CD ワークフロー YAML 生成ガイド開発ツール

Node.js、Go、Python、Docker ビルド、ユニットテスト、自動リリースに対応した本番向け GitHub Actions ワークフロー YAML パイプラインを安全かつ迅速に構築します。

ツールを開く→
Linux Logrotate 設定ファイル生成ツール (保持期間 & 圧縮設定ガイド)開発ツール

日次・週次ローテーション、gzip圧縮、dateext、ファイルサイズ制限、postrotateスクリプトを含む本番環境用 /etc/logrotate.d/ 設定ファイルを安全に生成。

ツールを開く→
Ubuntu Netplan ネットワーク設定 YAML 生成ツール開発ツール

Ubuntu 20.04/22.04/24.04 向けの Netplan YAML 設定(静的IP、DHCP、DNSネームサーバー、ゲートウェイルート、仮想ブリッジ、BOND構成)をブラウザ上で安全に生成。

ツールを開く→