// @ts-check في JS؛ استخدام JSDoc للحصول على الأنواع
فعّل التحقق من الأنواع في ملفات .js باستخدام // @ts-check و JSDoc، وأضف @param/@returns و @type/@typedef و @template للأنماط العامة، واضبط tsconfig للانتقال التدريجي.
// @ts-check في JS؛ استخدام JSDoc للحصول على الأنواع درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 1. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 1 دروس في المجموع.
مقدمة
الهدف: الاستفادة من TypeScript داخل ملفات .js. ستفعّل // @ts-check، وتضيف أنواع JSDoc، وتضبط tsconfig للتبنّي التدريجي.
- الفحص لكل ملف مقابل الفحص على مستوى المشروع
- @param و@returns و@type و@typedef
- @template للمساعدات الشبيهة بالأنواع العامة
تمكين الفحص
أضف // @ts-check في أعلى ملف .js. استخدم @param/@returns لتوثيق الدالة وتحديد نوعها.
// calculator.js
// @ts-check
/**
* Adds two numbers.
* @param {number} a
* @param {number} b
* @returns {number}
*/
export function add(a, b) {
return a + b
}
// Usage: type errors appear if you pass non-numbers
// add("2", 3) // TS will flag this in JStypedef و type
استخدم @typedef لتعريف بنية قابلة لإعادة الاستخدام، و@type لإضافة تعليق نوعي إلى المتغيرات. ويُشار إلى الحقول الاختيارية باستخدام ?.
// models.js
// @ts-check
/** @typedef {{ id: string; name: string; age?: number }} User */
/** @type {User} */
export const currentUser = { id: "u1", name: "Ada" }
/**
* Greets a user.
* @param {User} u
* @returns {string}
*/
export function greet(u) {
return `Hello, ${u.name}!`
}معاملات القالب
يقدّم @template معاملات أنواع للدوال الشبيهة بالأنواع العامة في JS. ويعمل الاستدلال عند مواضع الاستدعاء.
// helpers.js
// @ts-check
/**
* Maps items with a function, preserving types.
* @template T,U
* @param {T[]} items
* @param {(x: T) => U} f
* @returns {U[]}
*/
export function map(items, f) {
const out = []
for (const x of items) out.push(f(x))
return out
}
// Inference: T=number, U=string
// map([1,2], n => n.toFixed(2))tsconfig لـ JS
على مستوى المشروع: فعّل checkJs لجميع ملفات .js. اضبط allowJs لتضمين ملفات JS في البرنامج. استخدم noEmit عندما يتولى نظام التجميع إخراج الملفات.
// tsconfig.json
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"checkJs": true,
"allowJs": true,
"strict": true,
"noEmit": true
},
"include": ["./**/*.js"],
"exclude": ["node_modules"]
}نصائح الترحيل
نصائح الترحيل:
- ابدأ بالملفات الحرجة باستخدام
// @ts-check. - أنشئ تعريفات
@typedefصغيرة للبنى المشتركة. - أعد تسمية المسارات المهمة تدريجيًا إلى
.tsبعد استقرار الأنواع.
التحقق باستخدام ts-check
تحقق سريع: كيف تمكّن فحص TS في ملف .js؟
خلاصة
خلاصة: فعّل // @ts-check، وأضف @param/@returns/@typedef/@template، وشدّد إعدادات tsconfig لمشاريع JS قبل الترحيل إلى .ts.
تعلم TypeScript مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 101
- الدروس
- 352
الأسئلة الشائعة
هل درس «// @ts-check في JS؛ استخدام JSDoc للحصول على الأنواع» مجاني؟
نعم — نص درس «// @ts-check في JS؛ استخدام JSDoc للحصول على الأنواع» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 1 دروس في المجموع.
ماذا ستتعلم في «// @ts-check في JS؛ استخدام JSDoc للحصول على الأنواع»؟
فعّل التحقق من الأنواع في ملفات .js باستخدام // @ts-check و JSDoc، وأضف @param/@returns و @type/@typedef و @template للأنماط العامة، واضبط tsconfig للانتقال التدريجي. تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟
لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 1.
كم من الوقت يستغرق درس «// @ts-check في JS؛ استخدام JSDoc للحصول على الأنواع»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟
نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.