Avatar ·

Quelle est la différence entre require(x) et import x en TypeScript/Node.js ?

Bonjour à tous ! J'ai commencé à apprendre TypeScript et Node.js, et la différence entre les deux façons d'importer des modules me trouble. Partout dans les anciens tutoriels, je vois ce code : ```typescript const express = require('express'); const fs = require('fs'); ``` Mais dans les nouveaux projets TypeScript, on écrit ceci : ```typescript import express from 'express'; import * as fs from 'fs'; ``` J'ai essayé de comprendre par moi-même, mais je me suis encore plus embrouillé. Par exemple, j'ai essayé de faire ceci : ```typescript // Ancienne méthode const myModule = require('./myModule'); // Nouvelle méthode import myModule from './myModule'; ``` Les deux semblent fonctionner, mais parfois require génère une erreur "Cannot find module", alors que import fonctionne. Ou inversement — import génère "Module '".../myModule"' has no default export", alors que require fonctionne normalement. J'utilise Node.js 18 et TypeScript 5. Dans tsconfig.json, j'ai "module": "commonjs". Peut-être que c'est lié à cela ? Expliquez-moi, s'il vous plaît, quelle est la différence entre les deux et quand utiliser quoi. C'est particulièrement important