Descrição do Projeto • Tecnologias-utilizadas • Sobre o tsconfig.json • Documentação •
O objetivo desse repositório é mostrar exemplos e desafios de typescript feitos no bootcamp Santander fullstack developer.
É um superset do typescript que trás tipagem estática para a linguagem, além de outras features, com o propósito de melhorar a qualidade do código escrito e a sua usabilidade. Como é um superset o código compilado e usado em produção ainda é javascript, porém é um JS mais resiliente e turbinado graças ao uso de TS durante o desenvolvimento.
Algumas configurações e funcionalidades legais são:
1. Opções básicas:
* target:
Define para qual versão do ECMAScript o typescript vai ser convertido </br>
* lib:
Define quais bibliotecas vão vir por default com o TS. Isso é bacana caso o TS esteja sendo usado no backend e a iteração com o DOM não é necessária.</br>
* sourceMap:
Cria arquivos .map.js que geram uma cópia do seu arquivo TS no source do browser (aquele do inspect). Podem ser debugados via breakpoint direto no browser e são uma excelente ajuda, já que o código compilado de JS é menos legível que o TS. </br>
* outDir:
Pasta para onde seus arquivos JS serão enviados. </br>
* rootDir:
Pasta de onde seus arquivos TS serão coletados. Pode ser necessário inserir a opção include fora do *compilerOptions* com a pasta *src* inclusa. </br>
2. Opções de checagem de tipo:
* strict:
Marca todas opções de checagem de tipo como verdadeiras. Ideal caso seja a intenção do usuário ter o código mais consistente possível. </br>
* noImplicitAny:
Levanta erro caso variáveis não estejam tipadas. Caso essa seja a intenção, um "any" tem que ser explicitamente tipado </br>
* strictNullChecks:
Pode levantar erro caso uma variável em uso seja potencialmente nula.
Ex: um botão que foi buscado usando um getElementById que não necessariamente vai encontrar um elemento é usado para escutar um evento. </br>
3. Outras opções
* noUnusedLocals:
Levanta erro sempre que uma variável local não está sendo utilizada, como um let dentro de uma função. </br>
* nuUnusedParameters:
Mesmo caso de noUnusedLocals, mas para parâmetros de função </br>
* noImplicitReturns:
Levanta um erro caso uma função tenha caminhos que retornam valor e outros que não retornam </br>
Documentação oficial sobre o tsconfig.json: (https://www.typescriptlang.org/tsconfig)
Typescript: (https://www.typescriptlang.org/)