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

تحذيرات عند استخدام القراءة فقط في TypeScript

تم النشر بتاريخ 2024-08-21
تصفح:793

Cautions When Using readonly in TypeScript

أساسيات الملكية للقراءة فقط

في Type Script، يمكنك جعل كائن خصائص الكائن للقراءة فقط.

const person: { readonly name: string  } = { name: 'Mike' }

person.name = 21;
// → Cannot assign to 'name' because it is a read-only property.

⚠️① للقراءة فقط في وقت الترجمة

في كود JavaScript المترجم، تتم إزالة إعلان القراءة فقط، لذلك لن يتم اكتشافه كخطأ في وقت التشغيل.

⚠️② للقراءة فقط ليست متكررة.

const person: {
  readonly name: string;
  readonly academicBackground: {
    primarySchool: string
  }
} = {
  name: 'Mike',
  academicBackground: {
    primarySchool: 'School A'
  }
}

person.academicBackground.primarySchool = 'School B'
// You can change `person.academicBackground.primarySchool`

إذا كنت تريد جعله للقراءة فقط، فأنت بحاجة أيضًا إلى وضعه للقراءة فقط في المدرسة الابتدائية.

const person: {
  readonly name: string;
  readonly academicBackground: {
    readonly primarySchool: string
  }
} = {
  name: 'Mike',
  academicBackground: {
    primarySchool: 'School A'
  }
}

person.academicBackground.primarySchool = 'School B'
// → Cannot assign to 'primarySchool' because it is a read-only property.

للقراءة فقط

عندما يزيد عدد الخصائص، تصبح إضافة كل منها للقراءة فقط أمرًا مرهقًا وتزيد من كمية التعليمات البرمجية.
يمكنك إعادة البناء باستخدام القراءة فقط.

const obj: {
  readonly a : string;
  readonly b: string;
  readonly c: string;
  readonly d: string;
} = {
  a: 'a',
  b: 'b',
  c: 'c',
  d: 'd'
}

// ↓

const obj: Readonly = {
  a: 'a',
  b: 'b',
  c: 'c',
  d: 'd'
}

ترميز سعيد☀️

بيان الافراج يتم استنساخ هذه المقالة في: https://dev.to/noah-00/caates-when-user-in-type-in-typescript-22d7؟
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3