¿Cuál es la diferencia entre require(x) e import x en TypeScript/Node.js?
¡Hola a todos! Empecé a estudiar TypeScript y Node.js, y me confunde la diferencia entre dos formas de importar módulos.
En todos los tutoriales antiguos veo este código:
```typescript
const express = require('express');
const fs = require('fs');
```
Pero en proyectos nuevos con TypeScript escriben así:
```typescript
import express from 'express';
import * as fs from 'fs';
```
Intenté entenderlo por mi cuenta, pero me enredé aún más. Por ejemplo, probé hacer esto:
```typescript
// Forma antigua
const myModule = require('./myModule');
// Forma nueva
import myModule from './myModule';
```
Ambos parecen funcionar, pero a veces require da el error "Cannot find module", mientras que import funciona. O al revés: import da "Module '".../myModule"' has no default export", y require funciona bien.
Uso Node.js 18 y TypeScript 5. En mi tsconfig.json tengo "module": "commonjs". ¿Quizás el problema está en eso? Explíquenme, por favor, cuál es la diferencia entre ellos y cuándo usar cada uno. Especialmente importante