1
resposta

Duvidas sobre o arquivo

Estou seguindo o curso para aprender um pouco, mas o meu arquivo só compilou dessa forma:

import express, { type Request, type Response } from "express";

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

app.get("/", (_req: Request, 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,
};
}

let id = 0;
function geraId() {
id = id + 1;
return id;
}

app.post("/pets", (_req: Request, res: Response) => {
const pet1 = criaPet(geraId(), "Bolt", "cachorro", 3, false);
const pet2 = criaPet(geraId(), "Mel", "gato", 2, false);

res.send([pet1, pet2]);
});

export default app;

Porque acontece isso, poderia me explicar?

1 resposta

Olá, Everton! Tudo bem?

O seu arquivo está compilando corretamente, o que é ótimo! O uso de import express, { type Request, type Response } from "express"; é uma prática comum em TypeScript para garantir que você está utilizando as tipagens corretas para os objetos Request e Response do Express. Isso ajuda a manter o código mais seguro e menos propenso a erros.

No seu código, você está criando uma função criaPet que retorna um objeto representando um pet, e uma função geraId para gerar IDs incrementais. No endpoint POST /pets, você cria dois pets e os envia como resposta. Tudo parece estar correto, mas se você está se perguntando por que o código só compila dessa forma, pode ser devido a algumas razões:

  1. Tipagem Segura: ao utilizar type Request e type Response, você está garantindo que os tipos de dados que o Express espera estão sendo respeitados. Isso é importante em TypeScript para evitar erros de compilação.

  2. Estrutura do Código: a estrutura do seu código está organizada de forma que as funções e endpoints estão definidos antes de serem utilizados, o que é uma boa prática de programação.

  3. Configuração do TypeScript: certifique-se de que o seu arquivo tsconfig.json está configurado corretamente para compilar arquivos TypeScript. Algumas configurações importantes podem incluir esModuleInterop e strict.

Se o seu arquivo só compila dessa forma, pode ser que alguma configuração específica do TypeScript ou do seu ambiente de desenvolvimento esteja exigindo essa estrutura. Caso tenha mais detalhes sobre o erro que ocorre quando você tenta outras abordagens, ficarei feliz em ajudar mais!

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.