Anotações e códigos apresentados no mini curso de Typescript do Willian Justen para que possam ser consultados.
Superset de Javascript que permite utilizar tipagem estática ao Javascript. Escreve em Typescript e compila para Javascript.
Typescript visa evitar resultados inesperados pois tudo é acompanhado e processado em tempo de compilação.
Avisa se estiver fazendo coisas erradas no momento em que está escrevendo, pois acompanha as tipagens e regras definidas automaticamente (inferência) ou valores estipulados por você.
Funciona como uma espécie de documentação para seu código por acompanhar tudo que está sendo escrito.
A principal vantagem do Typescript é prevenir erros enquanto você desenvolve, ele alerta e informa o que deve ser feito em cada situação. Um Javascript que escala.
A instalação do Typescript pode ser feita utilizando o comando:
npm install -g typescript
Lembrando que é necessário ter Node.js instalado em sua máquina para conseguir executar o comando npm
Para estruturar regras como qual pasta compilar, como compilar, onde salvar e afins usa-se o arquivo .tsconfig, que pode ser iniciado/criado com tsc --init
no root do projeto que deseja utilizar Typescript.
String: "oi", 'oi' e oi
Number: 1, 2.34, 0#ff0
Boolean: true, false
Array: Array ou number[] - os dois dizem a mesma coisa, array de números.
Tuple: [number, string, string] - [1, "foo", "Bar"]
- tupla é para quando você sabe o tamanho e tipos dos itens em sua array
Enum: enum Colors { white = "#fff" }
- dá nome para valores basicamente
any: É qualquer (any) coisa, evite usar. Em poucos casos é utilizado para testar algo rapidamente antes de tipar.
void: vazio (void), retorna vazio
null / undefined: normalmente utilizado em conjunto com um tipo primário como let city = string | undefined
never: informar que algo nunca retornará nada
object: informa que é um objeto, podendo ter key:value com qualquer tipo
unknown: pode passar qualquer coisa, porém no momento em que definir o tipo ele irá alterar para o tipo definido
O Typescript identifica automaticamente valores de tipagens conhecidas ou que são percebidas de forma automática e infere esses tipos informando para você.
Inferência de tipos serve principalmente para que você não precise ficar tipando tudo, a grande maioria dos tipos são entendidos automaticamente pelo Typescript quando você declara um valor para uma variável.
const name: string = "iaurg";
const name = "iaurg";
/*Inferência, a variável aponta para uma string então o tipo inferido é string*/
Precisa tipar apenas informações que o Typescript não conhece ou que o desenvolvedor precisa saber.
É útil para facilitar a declaração de tipos quando são repetidos muitas vezes.
type Uid = number | string | undefined;
type Plataform = "Windows" | "Linux" | "Mac Os";
É possível "mesclar" tipagens para serem reaproveitadas em trechos de código utilizando intersection &
em type ou extends
em interface
São conjuntos de dados para descrever e tipar a estrutura de um objeto.
Normalmente utilizado para representar objetos mais complexos, pode ser utilizados para implementar classes implements
Comece utilizando types e caso precise extender use interfaces, types normalmente serão mais utilizados. Interfaces são bastante utilizadas com criação de bibliotecas ou na criação de objetos/classes (OPP).
Sempre preze pela consistência, se o seu código já existe com types
ou interface
mantenha o padrão, mas caso esteja iniciando um novo projeto preze por utilizar types e evoluir para interfaces conforme necessário.
Reutilização de código, código mais genérico que aceita diversos tipos de entrada e argumentos em suas tipagens. É possivel com generics
criar estruturas mais complexas e mutáveis com aceitação de diversos tipos em uma estrutura.
São utilizados para algumas transformações e modificações comuns que pode acontecer em seus tipos. Permite que você utilize um mesmo type
/ interface
em diversas ocasiões moldando o que deseja utilizar deste tipo, por exemplo omitindo algo ou pegando apenas alguns valores.
Servem para anotar e interceptar ações dentro do código, marcando um ponto para executar outra tarefa.