1
resposta

[Reclamação] Outro problema, curso não flui...

PS D:\Study\Web - FrontEnd\TypeScript\TypeScript - construção de uma API com tipagem segura\typescript-para-backend-configuracao-inicial> npx tsc ./server.ts ./src/app.ts
src/app.ts:1:8 - error TS1259: Module '"D:/Study/Web - FrontEnd/TypeScript/TypeScript - constru\u00E7\u00E3o de uma API com tipagem segura/typescript-para-backend-configuracao-inicial/node_modules/@types/express/index"' can only be default-imported using the 'esModuleInterop' flag

1 import express, { Response } from "express";
         ~~~~~~~

  node_modules/@types/express/index.d.ts:128:1
    128 export = e;
        ~~~~~~~~~~~
    This module is declared with 'export =', and can only be used with a default import when using the 'esModuleInterop' flag.


Found 1 error in src/app.ts:1

Fiz a instalação da biblioteca npm i --save-dev @types/express e verifiquei a escolha correta para o tipo Response:

import express, { Response } from "express";

const app = express();
app.use(express.json());

app.get("/", (_, res:Response) => {
  res.send("Bem vindo ao curso de TypeScript!");
});

function criaPet(id:number, nome: string, especie: string, idade: number, adotado: boolean) {
  return {
    id,
    nome,
    especie,
    idade,
    adotado,
  };
}
1 resposta

Oi, belza?

O módulo express tá sendo importado de uma maneira que requer a flag esModuleInterop habilitada no seu tsconfig.json.

faz o seguinte:

  1. Abra o arquivo tsconfig.json na raiz do seu projeto.
  2. Adicione ou altere a configuração esModuleInterop para true, como mostrado abaixo:
{
  "compilerOptions": {
    "esModuleInterop": true,
    "strict": true,
    "skipLibCheck": true,
    // outras configurações
  }
}
  1. Após isso, salve o arquivo e tente rodar o comando novamente.

Se continuar com dúvidas ou problemas, me avisa;

Abraço!