0
respostas

[Bug] Estou com esses erros

Ao rodar o projeto
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Aparece esses status 304, o que poderia ser?

Quando eu corrigo o strict de false para true ele me aparece esses erros:
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Irei colocar os codigo abaixo:
tsconfig,json

{
  //quais diretorios serão considerados e gravados os arquivos resultantes (que muda de .ts para .js)
  "compilerOptions": {
    //é usada para especificar o diretório de destino onde os arquivos JavaScript compilados serão salvos
    "outDir": "dist/js",
    //pode definir qual versão do js ira ser gerado o arquivo .ts
    "target": "ES6",
    //usado para não gerar os arquivos js enquanto o arquivo .ts estiver com ERRO
    "noEmitOnError": true,
    //para não aceitar o tipo any
    "noImplicitAny": true,

    //"forceConsistentCasingInFileNames" deve ser habilitada para reduzir problemas ao trabalhar com diferentes sistemas operacionais tipo windows e linux
    "forceConsistentCasingInFileNames": true,
    //ao ativar a strictopção de compilador do TypeScript, o compilador será executado no modo mais rigoroso, detectando mais problemas de tipagem antes da execução
    "strict": true
  },
  //diz onde estão os arquivos .ts para a conversão em .js
  "include": [
    //aqui eu estou dizendo qual o diretorio, como aqui só tenho o app, eu só passo esse diretorio
    "app/**/*"
  ]
}

index.html


<!DOCTYPE html>
<html lang="pt-br">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>Negociações</title>
    <link rel="stylesheet" href="css/bootstrap.css" />
  </head>
  <body class="container">
    <h1 class="text-center">Negociações</h1>

    <div id="mensagemView"></div>
    <form class="form">
      <div class="form-group">
        <label for="data">Data</label>
        <input type="date" id="data" class="form-control" required autofocus />
      </div>

      <div class="form-group">
        <label for="quantidade">Quantidade</label>
        <input
          type="number"
          min="1"
          step="1"
          id="quantidade"
          class="form-control"
          value="1"
          required
        />
      </div>
      <div class="form-group">
        <label for="valor">Valor</label>
        <input
          id="valor"
          type="number"
          class="form-control"
          min="0.01"
          step="0.01"
          value="0.0"
          required
        />
      </div>
      <button class="btn btn-primary" type="submit">Incluir</button>
    </form>
    <br />
    <br />
    <!-- é usando o type="module", para mostrar que esse seria o modulo principal -->
    <script type="module" src="js/app.js"></script>
  </body>
</html>

app.ts (onde aparece o erro (app/app.ts(6,1): error TS2531: Object is possibly 'null'.)

import { NegociacoController } from "./controllers/negociacao-controller.js";
const controller = new NegociacoController();
const form = document.querySelector('.form');
form.addEventListener('submit', event => {
    event.preventDefault();//não deixa recarregar a tela 
    controller.adiciona();
} )`

e o ultimo
Insira aqui a descrição dessa imagem para ajudar na acessibilidade


import { Negociacao } from "../models/negociacao.js";
export class NegociacoController {
  //a tipagem é htmlInputElement pois vem do html.
  private inputData: HTMLInputElement;
  private inputQuanditdade: HTMLInputElement;
  private inputValor: HTMLInputElement;
  constructor() {
    //pega o input do html
    this.inputData = document.querySelector("#data");
    this.inputQuanditdade = document.querySelector("#quantidade");
    this.inputValor = document.querySelector("#valor");
  }
  adiciona(): void {
    const negociacao = this.criaNegociacao();
    console.log(negociacao);
  }
  criaNegociacao(): Negociacao {
    //regex (expressão regular), neste caso estou procurando todos os - e o G no final da expressão é para declarar como GLOBAL
    const exp = /-/g;
    //conversão em tipo date;
    const date = new Date(this.inputData.value.replace(exp, ","));
    //passo a string para numero inteiro
    const quantidade = parseInt(this.inputQuanditdade.value);
    //passo a tring para float
    const valor = parseFloat(this.inputValor.value);
    return new Negociacao(date, quantidade, valor);
  }
  limparFormulario(): void {
    this.inputData.value = "";
    this.inputQuanditdade.value = "";
    this.inputValor.value = "";
    this.inputData.focus();
  }
}

Alguem ajuda?