📘 مميز

Prisma-Type

أنواع TypeScript لـ Prisma ORM (ORM Type Definitions)

(5/5)
👁️ 5 مشاهدة
📅 02 Jul 2026
⚛️ React 💚 Vue.js 🅰️ Angular 🧡 Svelte 🌐 عام

مستوى الخبرة المطلوب:

🌱 مبتدئ
🔗 زيارة الموقع الرسمي
5
تقييم المستخدمين
التصنيف 📘 TypeScript
المشاهدات 5
تاريخ الإضافة 02/07/2026
آخر تحديث 02/07/2026

📖 الوصف

Prisma ORM يُولّد أنواع TypeScript تلقائياً من الـ schema (Prisma schema) بعد تشغيل `prisma generate`. هذا يسمح بالـ type safety الكامل عند التعامل مع قاعدة البيانات، حيث أن جميع الـ queries والـ results تكون معرفة الأنواع بدقة. هذا الملف يغطي كيفية استخدام الأنواع المُولّدة من Prisma مثل إنشاء DTO...

🎯 يستخدم في

مجالات استخدام هذه الأداة

Type-safe database queries مع Prisma Client

توليد DTOs من Prisma models

بناء typed services و repositories

Type-safe input validation مع Zod adapters

API responses مع أنواع دقيقة

المميزات

أبرز مميزات هذه الأداة

Types مولّدة تلقائياً من الـ schema

Type-safe queries مع autocomplete كامل

دعم nested relations و joins

Prisma + Zod adapter لـ validation

Types للـ pagination

sorting

filtering

دعم TypeScript strict mode

⚠️ العيوب

نقاط يجب مراعاتها

×

يحتاج تشغيل prisma generate بعد كل تغيير schema

×

حجم الـ generated client قد يكون كبيراً

×

بعض الأنواع المعقدة قد تحتاج type assertions

×

أخطاء TypeScript في Prisma قد تكون صعبة الفهم

🔄 البدائل

أدوات بديلة يمكنك استخدامها

Drizzle types
TypeORM types
Kysely

💻 مثال على الاستخدام

كيفية استخدام هذه الأداة

Example Code
// schema.prisma
// model User {
//   id    Int     @id @default(autoincrement())
//   name  String
//   email String  @unique
//   posts Post[]
// }

// Generated types (after prisma generate)
import { PrismaClient, User, Post } from '@prisma/client';
import { Prisma } from '@prisma/client';

const prisma = new PrismaClient();

// Fully typed query
const user: User | null = await prisma.user.findUnique({
  where: { id: 1 },
  include: { posts: true },
});
// TypeScript knows: user.posts is Post[]

// Input types for create/update
const userInput: Prisma.UserCreateInput = {
  name: 'Ahmed',
  email: 'ahmed@example.com',
};

// Select specific fields
type UserWithPosts = Prisma.UserGetPayload<{
  include: { posts: true };
}>;

📚 أدوات أخرى في TypeScript

قد يعجبك أيضاً