"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > مغامرات TypeScript مع تحديات الكتابة – اختيار اليوم

مغامرات TypeScript مع تحديات الكتابة – اختيار اليوم

تم النشر بتاريخ 2024-11-03
تصفح:812

أهلا بالجميع.
أنا أعمل على مواجهة تحديات الكتابة للتعمق أكثر في TypeScript.

اليوم، أود أن أشارككم ما تعلمته عن بيك.

- التحدي -

interface Todo {
  title: string
  description: string
  completed: boolean
}

type TodoPreview = MyPick

const todo: TodoPreview = {
    title: 'Clean room',
    completed: false,
}

قم بتنفيذ الاختيار العام المدمج دون استخدامه.
إنشاء نوع عن طريق اختيار مجموعة الخصائص K من T.

- وصف -

يكمن التحدي في إنشاء نسختك الخاصة من نوع الأداة المساعدة Pick، والتي توفرها TypeScript كأداة مساعدة قياسية.

- الحل الخاص بي -

interface Todo {
  title: string;
  description: string;
  completed: boolean;
}

type MyPick = {
  [k in U]: T[k];
};

type TodoPreview = MyPick;

const todo: TodoPreview = {
  title: "Clean room",
  completed: false,
};

- توضيح -

دعني أشرح لك سطرًا تلو الآخر.

في السطر الأول، يتلقى MyPick وسيطتين: T وU يوسعان مفتاح T.

TypeScript Adventures with type-challenges – Day Pick

T: النوع الأساسي الذي يشمل جميع الخصائص.
U يمتد مفتاح T: يحدد الخصائص المراد تضمينها في نوع الإخراج.

حول مفتاح
حول الامتدادات

في السطر الثاني،
يقوم بإنشاء نوع جديد يستخرج فقط الخصائص المحددة من الوسيطة المحددة.

TypeScript Adventures with type-challenges – Day Pick

حول الأنواع المعينة مثل [k in U]

كما ترون أدناه، يتم إنشاء نوع جديد يستبعد الوصف من Todo من خلال توفير العنوان فقط وإكماله إلى MyPick.

TypeScript Adventures with type-challenges – Day Pick

ترميز سعيد☀️

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/noah-00/typescript-adventures-with-type-challenges-day-1-pick-5fdj?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3