ما الفرق بين النوعين String و string في TypeScript؟
مرحباً بالجميع! بدأت للتو في تعلم TypeScript وواجهت موقفاً غير مفهوم. في التوثيق وفي أمثلة مختلفة، أرى أنه للإعلان عن متغيرات نصية يتم استخدام نوعين مختلفين: `String` و `string`. على سبيل المثال:
```typescript
let name1: string = "Alice";
let name2: String = "Bob";
```
كلا الخيارين يبدو أنهما يعملان، ويتم تجميع الكود دون أخطاء. لكنني لاحظت أنه إذا استخدمت `String` (بحرف كبير)، فإن TypeScript يتصرف أحياناً بشكل غريب. على سبيل المثال، حاولت كتابة ما يلي:
```typescript
let greeting: String = new String("Hello");
let message: string = "World";
// وهذا لا يعمل:
// let result: string = greeting + message; // خطأ؟
```
على الرغم من أن كل شيء كان سينجح في JavaScript. كما رأيت أن بعض المطورين ينتقدون عندما يستخدم أحدهم `String` بدلاً من `string`. من فضلكم، أخبروني ما الفرق؟ لماذا يسمح TypeScript أصلاً باستخدام كلا الخيارين؟ وأيهما هو الصحيح للتطوير اليومي؟ شكراً مسبقاً!