📋 محتويات الصفحة
📖 الوصف
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 قد تكون صعبة الفهم
🔄 البدائل
أدوات بديلة يمكنك استخدامها
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
// 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
قد يعجبك أيضاً
Drizzle-Type
⭐أنواع TypeScript لـ Drizzle ORM (ORM Type Definitions)
tRPC
⭐نقل الأنواع من الخادم للواجهة (End-to-End Type Safety)
ts-node
⭐مُشغّل TypeScript (TypeScript Runtime)
tsx
⭐مُشغّل TypeScript سريع (Fast TypeScript Runtime)
TypeChallenges
⭐مصدر تعلم TypeScript عن طريق التحدي (TypeScript Learning Resource)
TypeScript-Powered-Tools
⭐أدوات مبنية على TypeScript (TypeScript Ecosystem Tools)