الحزمة بتدي مترجم
pnpm add -D typescript بيثبت أمر واحد: tsc. النسخة اللي اتجرّبت هنا 7.0.2.
tsc بيعمل حاجتين، ومش بيعمل التالتة:
- بيفحص الأنواع على
tsconfig.json. - يقدر يكتب JavaScript في
distلوnoEmitمش شغّال. - مش بيشغّل الملف. مفيش
console.logهيظهر منtscنفسه.
الفحص بيقف على الغلط
الملف ده فيه نوع غلط: السن متعرّف number والقيمة نص.
bad.ts
const age: number = "٣٠";console.log(age.toFixed(0));pnpm exec tsc --noEmit وقف وطلع:
bad.ts(1,7): error TS2322: Type 'string' is not assignable to type 'number'.
السطر التاني متتنفّذش، لأن tsc مش برنامج تشغيل. --noEmit يعني افحص بس ومتكتبش ملفات.
الإخراج بيشيل النوع
ملف سليم:
src.ts
export const n: number = 1;مع outDir قيمته dist، الأمر tsc كتب dist/src.js بالشكل ده:
export const n = 1;
النوع : number اختفى. الملف الناتج JavaScript يتشغّل بعد كده بـ node dist/src.js.
خلّصت الفصل لما
🧠 اختبر نفسك
١) tsc --noEmit لقى TS2322. البرنامج اشتغل؟
لأ. الأمر بيفحص وبيوقف. التشغيل مش شغله.
٢) ليه النوع : number مش موجود في dist/src.js؟
لأن
tsc بيطلّع JavaScript، والأنواع بتتشال في الإخراج.