Executando verificação de segurança...
3

Como usar tipagem no JavaScript puro sem o TypeScript

Hoje, navegando pela internet, deparei-me com um modo de programar em JavaScript (JS) diferente. Simplesmente descobri como utilizar a tipagem do TypeScript (TS) dentro do próprio JS. Posso ser a última pessoa a descobrir isso, mas fiquei de cara com isso e fiquei me perguntando por que os devs não utilizam isso?

Estou falando do JSDoc, uma API que, por meio de comentários, auxilia na tipagem do seu código JS dentro do VS Code. Essa API dá a opção de programar em JS sem precisar da complexidade do TS. Claro, o TS tem mais vantagem, mas para projetos em que você quer ter menos trabalho e tem pouco conhecimento em TS, é muito útil, além de deixar o seu código bem documentado. Vou dar um exemplo de como utilizar.

Crie um arquivo chamado jsconfig.json na raiz do projeto e adicione o seguinte comando.

jsconfig.json

    {
      "compilerOptions": {
        "checkJs": true
      }
    }

E, nos arquivos JS, sempre que quiser tipar alguma variável, função ou outro parâmetro, inicie com um comentário antes da variável da seguinte forma: /** @type {number} */. Dessa forma, o VS Code interpretará a variável abaixo como do tipo numérico e, caso você coloque uma string, por exemplo, o VS Code alertará que aquela variável é do tipo number. Isso funciona para outros tipos e métodos; recomendo que pesquise e teste.

Exemplo:

index.js

    /** @type {number} */
    const age = 22;
Carregando publicação patrocinada...
2

Eu odeio ser aquele tipo de programador estraga prazer, mas que tipo de complexidade do TypeScript que estamos falando? Todo o ecossistema atual do Node.js utiliza TypeScript como linguagem principal, e a curva de aprendizado que você teria para criar anotações de tipagem no JsDoc, você teria no TypeScript. Claro, que para você aprender tudo que o TypeScript pode oferecer, leva um tempo considerável. Mas é mais relacionado com as necessidades de cada nível de dev. Não é que o JSDoc seja inútil, pq ele ainda serve para documentar as libs, mas usar o JSDoc como uma alternativa ao TypeScript é uma forma de limitar o seu próprio aprendizado

1

Fica extremamente mais complexo do que usar as notações de tipos do TypeScript. E aumenta verbosidade do código.
Além disso, TypeScript é capaz de fazer inferência de tipos. Const age = 22 se tornar o valor literal 2. Ainda mais estrito com o exemplo acima com number.