ماجراهای TypeScript با چالش های نوع – روز 1: انتخاب

Summarize this content to 400 words in Persian Lang
سلام به همه.من با چالشهای نوع کار میکنم تا عمیقتر در TypeScript فرو بروم.
امروز، من می خواهم آنچه را که در مورد Pick یاد گرفتم به اشتراک بگذارم.
– چالش –
interface Todo {
title: string
description: string
completed: boolean
}
type TodoPreview = MyPick<Todo, ‘title’ | ‘completed’>
const todo: TodoPreview = {
title: ‘Clean room’,
completed: false,
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اجرای عمومی انتخاب داخلی بدون استفاده از آن.با انتخاب مجموعه ای از خصوصیات K از T یک نوع می سازد.
– توضیحات –
چالش این است که نسخه خود را ایجاد کنید Pick نوع ابزار، که TypeScript به عنوان یک ابزار استاندارد ارائه می کند.
– راه حل من –
interface Todo {
title: string;
description: string;
completed: boolean;
}
type MyPick<T, U extends keyof T> = {
[k in U]: T[k];
};
type TodoPreview = MyPick<Todo, “title” | “completed”>;
const todo: TodoPreview = {
title: “Clean room”,
completed: false,
};
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
– توضیح –
بگذارید خط به خط توضیح دهم.
در خط اول، MyPick دو آرگومان دریافت می کند: T و U extends keyof T.
T:نوع پایه که شامل تمام خواص است.U extends keyof T:خواصی را که باید در نوع خروجی گنجانده شوند را مشخص می کند.
درباره keyofدرباره گسترش می یابد
در خط دوم، یک نوع جدید ایجاد می کند که فقط ویژگی های مشخص شده را از آرگومان داده شده استخراج می کند.
درباره انواع Mapped مانند [k in U]
همانطور که در زیر می بینید، یک نوع جدید که حذف می کند description از Todo تنها با ارائه ایجاد می شود title و completed به MyPick.
کد نویسی مبارک☀️
سلام به همه.
من با چالشهای نوع کار میکنم تا عمیقتر در TypeScript فرو بروم.
امروز، من می خواهم آنچه را که در مورد Pick یاد گرفتم به اشتراک بگذارم.
– چالش –
interface Todo {
title: string
description: string
completed: boolean
}
type TodoPreview = MyPick<Todo, 'title' | 'completed'>
const todo: TodoPreview = {
title: 'Clean room',
completed: false,
}
اجرای عمومی انتخاب داخلی بدون استفاده از آن.
با انتخاب مجموعه ای از خصوصیات K از T یک نوع می سازد.
– توضیحات –
چالش این است که نسخه خود را ایجاد کنید Pick
نوع ابزار، که TypeScript به عنوان یک ابزار استاندارد ارائه می کند.
– راه حل من –
interface Todo {
title: string;
description: string;
completed: boolean;
}
type MyPick<T, U extends keyof T> = {
[k in U]: T[k];
};
type TodoPreview = MyPick<Todo, "title" | "completed">;
const todo: TodoPreview = {
title: "Clean room",
completed: false,
};
– توضیح –
بگذارید خط به خط توضیح دهم.
در خط اول، MyPick دو آرگومان دریافت می کند: T
و U extends keyof T
.
T
:نوع پایه که شامل تمام خواص است.U extends keyof T
:خواصی را که باید در نوع خروجی گنجانده شوند را مشخص می کند.
درباره keyof
درباره گسترش می یابد
در خط دوم،
یک نوع جدید ایجاد می کند که فقط ویژگی های مشخص شده را از آرگومان داده شده استخراج می کند.
درباره انواع Mapped مانند [k in U]
همانطور که در زیر می بینید، یک نوع جدید که حذف می کند description
از Todo
تنها با ارائه ایجاد می شود title
و completed
به MyPick
.
کد نویسی مبارک☀️