البداية · فصل ١

تلات أسماء متشابهة

.tsx · typescript package · tsx package · JSX
🎯 الهدف: تفرّق بين امتداد الملف .tsx وحزمة typescript وحزمة tsx قبل ما تقارن أوامرهم.

الاسم مش الوظيفة

الكلمة tsx بتيجي في تلات أماكن، وكل مكان معناه مختلف:

الاسمده إيهبيعمل إيه
.tsxامتداد ملفTypeScript مكتوب فيه JSX، زي زرار React
typescriptحزمة على npmبتثبت أمر tsc عشان الفحص والـ compile
tsxحزمة تانية على npmبتشغّل .ts و.tsx على Node
تثبيت typescript مش بيدي أمر tsx، وتثبيت tsx مش بيفحص الأنواع.

ملف .tsx مالوش دعوة بالحزمة

الملف ده TypeScript عادي، بس مسموح فيه بـ JSX:

Button.tsx
type Props = { label: string };export function Button({ label }: Props) {  return <button>{label}</button>;}

عشان tsc يفهم السطر اللي فيه <button>، لازم jsx في tsconfig.json. ده إعداد في حزمة typescript، مش الحزمة التانية.

ولو عايز تشغّل ملف .tsx بأمر node لوحده، Node 26 بيرفض الامتداد. ده اللي هنشوفه في فصل حزمة tsx.

خلّصت الفصل لما

🧠 اختبر نفسك
١) نزلت حزمة typescript. تقدر تشغّل pnpm exec tsx file.ts؟
لأ. أمر tsx من حزمة اسمها tsx، مش من حزمة typescript.
٢) ملف Button.tsx معناه إيه؟
ملف TypeScript فيه JSX. الامتداد مش الحزمة اللي بتشغّل الملفات.