TypeScript Academy · درس

متغيرات البيئة وتحديد أنواع الإعدادات

حدّدوا نوع process.env باستخدام وحدة إعدادات تم التحقق منها

الدرس 4 من 413 خطوة

متغيرات البيئة وتحديد أنواع الإعدادات درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

ترحيب

يمنع تحديد نوع process.env أخطاء وقت التشغيل الناتجة عن متغيرات البيئة المفقودة أو ذات الأنواع غير الصحيحة.

المشكلة

تكون قيم process.env دائمًا من النوع string | undefined. ويؤدي الوصول إليها من دون التحقق منها إلى حدوث أخطاء.
const port = process.env.PORT; // string | undefined
// server.listen(port); // could be undefined!

Module Augmentation لـ process.env

وسّع ProcessEnv في ملف تصريح عام لتحديد أنواع متغيرات البيئة المعروفة.
declare global {
  namespace NodeJS {
    interface ProcessEnv {
      PORT: string;
      DATABASE_URL: string;
      NODE_ENV: 'development' | 'staging' | 'production';
    }
  }
}

نمط وحدة الإعدادات

أنشئ وحدة إعدادات محدّدة النوع تتحقق من متغيرات البيئة وتصدّرها.
function requireEnv(key: string): string {
  const val = process.env[key];
  if (!val) throw new Error(`Missing env var: ${key}`);
  return val;
}
export const config = {
  port: parseInt(requireEnv('PORT')),
  dbUrl: requireEnv('DATABASE_URL'),
};

التحقق من متغيرات البيئة باستخدام Zod

تحقّق من متغيرات البيئة عند بدء التشغيل باستخدام Zod لإجراء فحص شامل أثناء التشغيل.
import { z } from 'zod';
const envSchema = z.object({
  PORT: z.string().transform(Number),
  DATABASE_URL: z.string().url(),
  NODE_ENV: z.enum(['development', 'production']),
});
export const env = envSchema.parse(process.env);

dotenv مع TypeScript

حمّل ملفات .env باستخدام dotenv قبل الوصول إلى process.env.
import 'dotenv/config';
// Or:
import dotenv from 'dotenv';
dotenv.config();

الوصول الصارم إلى متغيرات البيئة

استخدم وحدة الإعدادات دائمًا للوصول إلى متغيرات البيئة، ولا تصل إليها مباشرةً عبر process.env في شيفرة التطبيق.

إعدادات البيئات المختلفة

استخدم NODE_ENV لتحميل ملفات إعدادات خاصة بكل بيئة.
const envFile = `.env.${process.env.NODE_ENV ?? 'development'}`;
dotenv.config({ path: envFile });

إخفاء الأسرار في السجلات

لا تسجّل كائنات الإعدادات التي تحتوي على أسرار مطلقًا. أخفِ الحقول الحساسة.
console.log({ ...config, dbPassword: '***', apiKey: '***' });

Feature Flags آمنة من ناحية الأنواع

حدّد نوع متغيرات البيئة الخاصة بـ Feature Flags.
const flags = {
  enableBeta: process.env.ENABLE_BETA === 'true',
  logLevel: (process.env.LOG_LEVEL ?? 'info') as 'debug' | 'info' | 'warn',
};

اختبار متغيرات البيئة

استخدم ملف .env.test وحمّله ضمن إعداد الاختبارات.
// tests/setup.ts
process.env.DATABASE_URL = 'sqlite:///:memory:';
process.env.NODE_ENV = 'test';

تحقق سريع

ما نوع TypeScript الخاص بـ `process.env.PORT` من دون أي augmentation؟

مراجعة

وسّع ProcessEnv باستخدام module augmentation، أو استخدم وحدة إعدادات تعتمد على Zod لتحديد أنواع متغيرات البيئة والتحقق منها عند بدء التشغيل. استخدم وحدة إعدادات دائمًا للوصول إلى متغيرات البيئة، ولا تصل إليها مباشرةً.
البدء مجانًا

تعلم TypeScript مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
101
الدروس
352

الأسئلة الشائعة

هل درس «متغيرات البيئة وتحديد أنواع الإعدادات» مجاني؟

نعم — نص درس «متغيرات البيئة وتحديد أنواع الإعدادات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

ماذا ستتعلم في «متغيرات البيئة وتحديد أنواع الإعدادات»؟

حدّدوا نوع process.env باستخدام وحدة إعدادات تم التحقق منها تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟

لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «متغيرات البيئة وتحديد أنواع الإعدادات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟

نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إعداد TypeScript مع Node.js
  2. تحديد أنواع طلبات Express واستجاباته
  3. البرمجيات الوسيطة ومعالجات الأخطاء محددة الأنواع
  4. متغيرات البيئة وتحديد أنواع الإعدادات
← العودة إلى TypeScript Academy