"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > الفرق بين readonly وconst في Type Script

الفرق بين readonly وconst في Type Script

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

The difference between readonly and const in Type Script

تتشابه هاتان الميزتان من حيث أنهما غير قابلتين للتنازل.

هل يمكنك شرح ذلك بالضبط؟

وفي هذا المقال سأشارككم الاختلافات بينهما.

const يمنع إعادة التعيين إلى متغير.

في هذه الحالة، hisName هو متغير لا يمكن إعادة تعيينه.

const hisName = 'Michael Scofield'

hisName = 'Lincoln Burrows'
// → ❌ Cannot assign to 'hisName' because it is a constant.

ومع ذلك، يمكنك إعادة التعيين إلى الممتلكات.

const hisFamily = {
  brother: 'Lincoln Burrows'
}

hisFamily.brother = ''
// → ⭕️

hisFamily = {
  mother: 'Christina Rose Scofield'
}
// → ❌ Cannot assign to 'hisFamily' because it is a constant.

readonly يمنع إعادة التعيين إلى خاصية.

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

let hisFamily: { readonly brother: string } = {
  brother: 'Lincoln Burrows'
}

hisFamily.brother = ''
// → ❌ Cannot assign to 'brother' because it is a read-only property.

من ناحية أخرى، يُسمح بالتخصيص للمتغير نفسه.

let hisFamily: { readonly brother: string } = {
  brother: 'Lincoln Burrows'
}

hisFamily = {
  brother: ''
}
// → ⭕️

خاتمة

const يجعل المتغير نفسه غير قابل للتعيين، بينما readonly يجعل الخاصية غير قابلة للتعيين.

من خلال الجمع بين const وreadonly، يمكنك إنشاء كائن حيث يكون كل من المتغير نفسه وخصائص الكائن غير قابلة للتغيير.

const hisFamily: { readonly brother: string } = {
  brother: 'Lincoln Burrows'
}

hisFamily.brother = ''
// ❌ Cannot assign to 'brother' because it is a read-only property.

hisFamily = {
  brother: ''
}
// ❌ Cannot assign to 'hisFamily' because it is a constant.

ترميز سعيد☀️

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/noah-00/the-difference-between-readonly-and-const-in-type-script-3po3?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang@163 .com لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3