@types/node و ESM مقابل CJS في Node
يوفّر @types/node كتابات لواجهات Node البرمجية، وتتيح لك خيارات الوحدة في tsconfig الاختيار بين CommonJS و ESM.
@types/node و ESM مقابل CJS في Node درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 2. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 2 دروس في المجموع.
مقدمة
الهدف: استخدم @types/node لضمان أمان الأنواع، واضبط TS للعمل مع CommonJS أو ES Modules.
تثبيت تعريفات الأنواع
ثبّت @types/node للحصول على تعريفات الأنواع لواجهات Node المضمّنة مثل fs وpath.
npm install --save-dev @types/nodeالمتغيرات العامة في Node
باستخدام @types/node، يتعرّف TypeScript على المتغيرات العامة مثل process و__dirname و__filename مع أنواعها.
console.log(process.version);
console.log(__dirname);
console.log(__filename);مثال CJS
CommonJS: النظام الافتراضي في Node. استخدم require وmodule.exports.
// CommonJS style
const fs = require("fs");
const data = fs.readFileSync("file.txt", "utf8");
console.log(data);مثال ESM
ESM: صياغة حديثة تستخدم import/export. تتطلب "module": "ESNext" في tsconfig و"type": "module" في package.json.
// ES Module style
import fs from "fs";
const data = fs.readFileSync("file.txt", "utf8");
console.log(data);وحدات tsconfig
تحكّم في نظام الوحدات من خلال tsconfig.json. بدّل قيمة module بين CommonJS وESNext.
{
"compilerOptions": {
"target": "ES2020",
"module": "CommonJS",
"moduleResolution": "node"
}
}التحقق من تعريفات الأنواع
تحقق سريع: لماذا نثبّت @types/node؟
مراجعة
مراجعة: يضيف @types/node تعريفات الأنواع. يستخدم CommonJS require، بينما يستخدم ESM import. يحدّد tsconfig نظام الوحدات.
الأسئلة الشائعة
هل درس «@types/node و ESM مقابل CJS في Node» مجاني؟
نعم — نص درس «@types/node و ESM مقابل CJS في Node» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 2 دروس في المجموع.
ماذا ستتعلم في «@types/node و ESM مقابل CJS في Node»؟
يوفّر @types/node كتابات لواجهات Node البرمجية، وتتيح لك خيارات الوحدة في tsconfig الاختيار بين CommonJS و ESM. تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟
لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 2.
كم من الوقت يستغرق درس «@types/node و ESM مقابل CJS في Node»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟
نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- @types/node و ESM مقابل CJS في Node
- خيارات وقت التشغيل (ts-node/tsx) وخرائط المصدر