Destruct کردن آبجکت یکی از ویژگیهای قدرتمند جاوااسکریپت و تایپ اسکریپت است که میتواند به ما در نوشتن کدهای تمیزتر و خواناتر کمک کند. این سینتکس به ما اجازه میدهد تا ویژگیها را از یک آبجکت استخراج کنیم و آنها را به متغیرها یا پارامترها اختصاص دهیم.
میتوانیم از destruct کردن آبجکت برای ایجاد متغیرها، تخصیص مقادیر پیشفرض، تغییر نام ویژگیها یا حذف برخی از ویژگیها استفاده نماییم.
// An object with two properties
const person = { name: "Alice", age: 25, hobby: "reading" };
// Destructuring the name and hobby properties and assigning default values
const { name, hobby = "reading" } = person;
// Destructuring the name property and omitting the rest
const { name, ...others } = person;
// Destructuring the name and age properties and renaming them to firstName and years
const { name: firstName, age: years } = person;
در تایپ اسکریپت میتوانیم تایپ آبجکت یا ویژگیهایی را که در حال destruct کردن آن هستیم نیز مشخص کنیم. دو راه برای انجام این کار وجود دارد:
const { name, age }: { name: string; age: number } = person;
این کد به تایپ اسکریپت میگوید آبجکتی که در حال destruct کردن آن هستیم دارای دو ویژگی name و age است و هر دو به ترتیب از تایپ رشته و عدد هستند.
interface Person {
name: string;
age: number;
}
const { name, age }: Person = person;
این کد به تایپ اسکریپت میگوید آبجکتی که در حال destruct کردن آن هستیم با اینترفیس Person مطابقت دارد که به ترتیب دارای دو ویژگی name و age از تایپ رشته و عدد است.
استفاده از یک interface یا type alias میتواند راحتتر و قابل استفادهتر از نوشتن type annotation داخلی باشد.
همچنین میتوانیم از destruct کردن آبجکت در پارامترهای تابع استفاده کنیم، که میتواند کد ما را مختصرتر و خواناتر کند. به عنوان مثال، به جای نوشتن تابعی مانند این:
function greet(person: Person) {
console.log(`Hello ${person.name}, you are ${person.age} years old.`);
}
میتوانیم آن را اینگونه بنویسیم:
function greet({ name, age }: Person) {
console.log(`Hello ${name}, you are ${age} years old.`);
}
به این ترتیب، لازم نیست پارامتر personرا در داخل بدنه تابع تکرار کنیم، همینطور میتوانیم مستقیماً به ویژگیهای name و age دسترسی داشته باشیم.
به طور کلی عمل destruct کردن میتواند با کاهش تعداد خطوط کد و روشنتر کردن هدفی که داریم، خوانایی کد ما را بیشتر کرده و نگهداری آن را آسانتر کند.
دیدگاهها: