Avatar ·

كيفية تحديد نوع التاريخ (Date) بشكل صحيح في TypeScript؟

مرحبًا! لقد بدأت للتو في تعلم TypeScript بعد JavaScript وواجهت موقفًا غير واضح عند العمل مع التواريخ. لنفترض أن لدي دالة تأخذ تاريخ ميلاد المستخدم وتعيد عمره: ```typescript function calculateAge(birthDate) { const today = new Date(); const diff = today.getTime() - birthDate.getTime(); return Math.floor(diff / (1000 * 60 * 60 * 24 * 365.25)); } ``` في JavaScript، كنت سأمرر `new Date('1990-05-15')` وكان كل شيء سيعمل. لكن TypeScript يشتكي من أن المعامل `birthDate` له نوع ضمني `any`. حاولت كتابة `birthDate: Date`، لكن عندها لا أستطيع تمرير سلسلة نصية `'1990-05-15'` أو رقم `631152000000` (timestamp) — المترجم يعطي خطأ. أيضًا لدي واجهة المستخدم: ```typescript interface User { name: string; createdAt: ???; // ماذا أكتب هنا؟ lastLogin: ???; // وماذا هنا؟ } ``` أرى أن `new Date()` يعيد `Date`، لكن في JSON البيانات تأتي بصيغة...