Avatar ·

ما الفرق بين require(x) و import x في TypeScript/Node.js؟

مرحبًا بالجميع! بدأت في تعلم TypeScript و Node.js، وأنا مرتبك بشأن الفرق بين طريقتين لاستيراد الوحدات. في كل مكان في الدروس القديمة أرى هذا الكود: ```typescript const express = require('express'); const fs = require('fs'); ``` لكن في المشاريع الجديدة على TypeScript يكتبون هكذا: ```typescript import express from 'express'; import * as fs from 'fs'; ``` حاولت أن أفهم بنفسي، لكني ازددت ارتباكًا. على سبيل المثال، جربت أن أفعل هذا: ```typescript // الطريقة القديمة const myModule = require('./myModule'); // الطريقة الجديدة import myModule from './myModule'; ``` كلاهما يبدو أنه يعمل، لكن أحيانًا يعطي require خطأ "Cannot find module" بينما يعمل import. أو العكس — يعطي import خطأ "Module '".../myModule"' has no default export" بينما يعمل require بشكل طبيعي. أنا أستخدم Node.js 18 و TypeScript 5. في ملف tsconfig.json لدي "module": "commonjs". ربما المشكلة في هذا؟ اشرح لي، من فضلك، ما الفرق بينهما ومتى يجب استخدام كل منهما. هذا مهم بشكل خاص