TypeScript على GitHub: 7 مستودعات سترتقي بكودك

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

لماذا أصبح TypeScript هو المعيار الجديد، وأين تبحث عن أفضل كود؟

\n\n

إذا كنت تكتب بلغة JavaScript ولم تنتقل بعد إلى TypeScript، فأنت تهدر وقتك. بجدية. TypeScript (أو TS) ليس مجرد "إضافة" فوق JS. إنه كتابة صارمة للأنواع، وإكمال تلقائي، وإعادة هيكلة دون خوف من كسر كل شيء، وبالطبع كود مفتوح المصدر يمكن (ويجب) دراسته.

\n\n

في هذه المقالة، لن نشرح كيفية تثبيت TypeScript. بدلاً من ذلك، سنذهب إلى GitHub ونستعرض أفضل 7 مستودعات لا تعرض حلولاً جميلة فحسب، بل ستساعدك أيضاً على كتابة كود أكثر نظافة وأماناً وقابلية للتوسع. كل مشروع هو كتاب دراسي مكتوب بكود حقيقي.

\n\n

ما الذي نبحث عنه في المستودعات؟

\n\n
    \n
  • أنماط معمارية — كيفية بناء مشروع بحيث لا ترغب في حذفه بعد شهر.
  • \n
  • أمثلة على الكتابة الصارمة للأنواع — حيث يظهر TS نفسه بنسبة 100%.
  • \n
  • فائدة حقيقية — مكتبات يمكنك تطبيقها الآن.
  • \n
\n\n

هيا بنا!

\n\n

1. NestJS — إطار عمل للتطبيقات الجادة

\n\n

المستودع: github.com/nestjs/nest

\n\n

NestJS هو بلا شك أكثر إطارات العمل أناقة على TypeScript. يستعير أفكاراً من Angular (الوحدات، المزينات، حقن التبعيات) ويحول كود الخادم إلى عمل فني.

\n\n

لماذا يستحق الدراسة:

\n
    \n
  • تقسيم واضح إلى وحدات.
  • \n
  • دعم مدمج لـ GraphQL و WebSockets و RabbitMQ.
  • \n
  • التوثيق هو نموذج يُحتذى به.
  • \n
\n\n

مثال كود من المستودع (وحدة التحكم والخدمة):

\n\n
// cats.controller.ts\nimport { Controller, Get, Post, Body } from '@nestjs/common';\nimport { CatsService } from './cats.service';\nimport { CreateCatDto } from './dto/create-cat.dto';\nimport { Cat } from './interfaces/cat.interface';\n\n@Controller('cats')\nexport class CatsController {\n  constructor(private catsService: CatsService) {}\n\n  @Post()\n  async create(@Body() createCatDto: CreateCatDto) {\n    this.catsService.create(createCatDto);\n  }\n\n  @Get()\n  async findAll(): Promise<Cat[]> {\n    return this.catsService.findAll();\n  }\n}\n
\n\n

لاحظ المزينات @Controller و @Get والواجهة الصارمة Cat. هذا ليس مجرد كود، بل هو قالب تُبنى عليه مئات الآلاف من المشاريع.

\n\n

2. Prisma — ORM لا يزعج

\n\n

المستودع: github.com/prisma/prisma

\n\n

Prisma هو ORM (تعيين الكائنات العلائقية) حديث لـ TypeScript و Node.js. يقوم بتوليد الأنواع تلقائياً بناءً على مخطط قاعدة البيانات الخاص بك. هذا يعني أن خطأ "الحقل غير موجود" سيتم اكتشافه في مرحلة التجميع، وليس في وقت التشغيل.

\n\n

ما ستتعلمه: نهج "المخطط أولاً" والتوليد التلقائي للأنواع.

\n\n

مثال من التوثيق:

\n\n
// schema.prisma\nmodel User {\n  id    Int     @id @default(autoincrement())\n  email String  @unique\n  name  String?\n  posts Post[]\n}\n\nmodel Post {\n  id        Int     @id @default(autoincrement())\n  title     String\n  content   String?\n  author    User    @relation(fields: [authorId], references: [id])\n  authorId  Int\n}\n\n// usage.ts\nimport { PrismaClient } from '@prisma/client';\n\nconst prisma = new PrismaClient();\n\nasync function main() {\n  const user = await prisma.user.create({\n    data: {\n      email: 'alice@prisma.io',\n      name: 'Alice',\n      posts: {\n        create: { title: 'Hello World' },\n      },\n    },\n  });\n  console.log(user);\n}\n
\n\n

Prisma هو مثال مثالي لكيفية جعل TypeScript العمل مع البيانات آمناً وسريعاً.

\n\n

3. RxJS — رد

المدونات

توصيات الكتب