Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

290
Vistas
This module is declared with using 'export =', and can only be used with a default import when using the 'esModuleInterop' flag

I'm trying to make a simple API using typescript and NodeJS but when I run my code I get this error

"This module is declared with using 'export =', and can only be used with a default import when using the 'esModuleInterop' flag."

This is my code: package.json

    {
  "name": "API-Proyecto",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "jsonwebtoken": "^8.5.1"
  },
  "devDependencies": {
    "@types/cors": "^2.8.6",
    "@types/express": "^4.17.6",
    "nodemon": "^2.0.4"
  }
}

Index.ts

    import express from 'express';
import { Request, Response }  from 'express';
import cors from 'cors';

const app = express();

app.use(express.urlencoded({extended: true}));
app.use(express.json);
app.use(cors({origin: true, credentials: true}));

app.get('/api/auth/testing', (req: Request, res: Response) =>{
    res.status(200).json({
        ok : true,
        msg : 'hi from my method'
    });
});

app.listen(3000, () => {console.log('Server running on 3000' )});

tsconfig.json

    {
  "compilerOptions": {
    "target": "es6",                          /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
    "module": "commonjs",                     /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
    "outDir": "./dist",                        /* Redirect output structure to the directory. */
    "esModuleInterop": true,                  /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
  }
}
over 4 years ago · Santiago Trujillo
7 Respuestas
Responde la pregunta

0

Your code is perfectly fine.

Fix

When you make changes to tsconfig, sometimes you need to restart your IDE or Code Editor 🌹

over 4 years ago · Santiago Trujillo Denunciar

0

I was wondering a lot but a friend helped me:

  1. You need to create a command inside of "scripts" part on package.json

Package.json

{
  "name": "api-proyecto",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    **"build-dev": "tsc -w"**
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/cors": "^2.8.6",
    "@types/express": "^4.17.6"
  },
  "dependencies": {
    "cors": "^2.8.5",
    "express": "^4.17.1"
  }
}
  1. To run your script you need to type the following line

    npm i run build-dev (because it's the name of our command)

  2. Finally in another powershell launch node normally. For Example:

    node .\dist\index.js

over 4 years ago · Santiago Trujillo Denunciar

0

My problem was that I tried to run tsc as tsc -w index.ts.

However, as said here https://stackoverflow.com/a/33244030/5711655 if you run tsc with a specified input file, it won't use the tsconfig.json in your project directory! So in my case I had to use tsc -w.

over 4 years ago · Santiago Trujillo Denunciar

0

Use:

import * as express from 'express';
over 4 years ago · Santiago Trujillo Denunciar

0

Don't forget to set "moduleResolution": "node" in the tsconfig.json if you are using node.

over 4 years ago · Santiago Trujillo Denunciar

0

I solved the problem by compiling the whole file instead of compiling individual files.

Just run the following command to compile the whole file in a go

npx tsc

This should solve your problem

over 4 years ago · Santiago Trujillo Denunciar

0

FWIW, I found that switching from

import * as blah from 'blah-lib';

To

const blah = require('blah-lib');

Fixed the issue at compile time.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda