إنشاء برنامج TypeScript باستخدام API
هيّئوا برنامج مترجمًا واصلوا إلى مدقّق الأنواع
إنشاء برنامج TypeScript باستخدام API درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 4 دروس في المجموع.
ما المقصود بواجهة Compiler API؟
يتيح TypeScript الوصول إلى مكونات المصرّف الداخلية من خلال حزمة npm المسماة typescript. ويمكنكم إنشاء البرامج وفحص مدقق الأنواع وتحليل الملفات المصدرية برمجيًا.
import ts from "typescript";
// Use ts.createProgram to startتثبيت الحزمة typescript
ثبّتوا TypeScript باعتباره تبعية عادية، وليس مجرد devDependency، عند استخدام Compiler API في أدواتكم.
npm install typescript
# Also install types if needed
npm install --save-dev @types/nodeإنشاء برنامج
تأخذ ts.createProgram مصفوفة من مسارات ملفات الإدخال وخيارات المصرّف، ثم تعيد كائن Program.
import ts from "typescript";
const program = ts.createProgram(["src/index.ts"], {
target: ts.ScriptTarget.ES2020,
module: ts.ModuleKind.CommonJS,
strict: true,
});الوصول إلى الملفات المصدرية
استخدموا program.getSourceFiles() للحصول على جميع الملفات الداخلة في الترجمة، أو getSourceFile لمسار محدد.
const sourceFiles = program.getSourceFiles();
sourceFiles.forEach(sf => {
if (!sf.isDeclarationFile) {
console.log(sf.fileName);
}
});الحصول على مدقق الأنواع
يُعد مدقق الأنواع جوهر تحليل TypeScript. احصلوا عليه باستخدام program.getTypeChecker().
const checker = program.getTypeChecker();
// Now use checker to resolve types, symbols, etc.قراءة التشخيصات
استرجعوا تشخيصات المصرّف، مثل الأخطاء والتحذيرات، لتنفيذ أدوات تحقق مخصصة.
const diagnostics = ts.getPreEmitDiagnostics(program);
diagnostics.forEach(d => {
const msg = ts.flattenDiagnosticMessageText(d.messageText, "
");
console.log(msg);
});قراءة tsconfig.json
استخدموا ts.readConfigFile وts.parseJsonConfigFileContent لتحميل خيارات المصرّف من ملف tsconfig.
const cfgFile = ts.readConfigFile("tsconfig.json", ts.sys.readFile);
const parsed = ts.parseJsonConfigFileContent(
cfgFile.config,
ts.sys,
process.cwd()
);
const program2 = ts.createProgram(parsed.fileNames, parsed.options);حل الرموز
يمكن لمدقق الأنواع حل الرموز — وهي الأسماء التي تشير إلى التصريحات — لفحص العنصر الذي يشير إليه معرّف معين.
const sf = program.getSourceFile("src/index.ts")!;
ts.forEachChild(sf, node => {
if (ts.isVariableStatement(node)) {
const symbol = checker.getSymbolAtLocation(
node.declarationList.declarations[0].name
);
console.log(symbol?.getName());
}
});إصدار المخرجات
استدعوا program.emit() لإنتاج ملفات JavaScript وملفات التصريحات، تمامًا كما يحدث عند تشغيل tsc.
const emitResult = program.emit();
const exitCode = emitResult.emitSkipped ? 1 : 0;
process.exit(exitCode);البرامج التزايدية
استخدموا ts.createIncrementalProgram لإجراء تحليلات متكررة بصورة أسرع، وذلك بإعادة استخدام حالة البناء السابقة.
// Incremental compilation tracks which files changed
// to avoid reprocessing unchanged filesمراجعة سريعة: أساسيات Compiler API
تتيح لكم Compiler API في TypeScript إنشاء البرامج وفحص الملفات المصدرية والاستعلام عن الأنواع من خلال المدقق وإصدار JavaScript، وكل ذلك من شيفرة Node.js.
اختبار سريع
ما الطريقة التي تعيد مدقق أنواع TypeScript من برنامج؟
ما تعلّمتموه
تبدأ Compiler API في TypeScript باستخدام ts.createProgram. ومن البرنامج يمكنكم الوصول إلى الملفات المصدرية ومدقق الأنواع والتشخيصات وإصدار المخرجات، وهي الأساس لبناء أدوات فحص الشيفرة ومولّدات الشيفرة وأدوات التحليل.
الأسئلة الشائعة
هل درس «إنشاء برنامج TypeScript باستخدام API» مجاني؟
نعم — نص درس «إنشاء برنامج TypeScript باستخدام API» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 4 دروس في المجموع.
ماذا ستتعلم في «إنشاء برنامج TypeScript باستخدام API»؟
هيّئوا برنامج مترجمًا واصلوا إلى مدقّق الأنواع تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟
لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «إنشاء برنامج TypeScript باستخدام API»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟
نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إنشاء برنامج TypeScript باستخدام API
- اجتياز AST باستخدام الزوّار
- المحوّلات المخصّصة وتوليد الشيفرة
- بناء أداة تدقيق بسيطة