TypeScript: entendendo de forma simplificada esse superconjunto do JS.
Tags: typescript, braziliandevs, frontend
Published: 2023-09-26 20:46:05

Idealizado e criado pela **Microsoft**, ele permite desenvolver aplicações utilizando conceitos e arquiteturas mais robustas. 

Vale ressaltar que todo código feito em **_TypeScript_** é transformado em código **_JavaScript_** através da transpilação. 

A _transpilação_ nada mais é que uma conversão de código. 

A facilidade e vantagem que o **_TypeScript_** tem é poder apontar problemas no código durante o desenvolvimento da aplicação. 

**Tipagem**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fzkj7vx6gha0pti4sa0j.png)

O tipo de dado em uma variável  no **_TypeScript_** é definido explicitamente na sua criação. Uma vez definido, ela é restrita ao tipo que está declarado, como no exemplo acima. Diferentemente do **_JavaScript_** onde não precisamos declarar. 

Sendo assim, podemos ver que o **_TypeScript_** tem uma _tipagem estática_ , ou seja, a partir do momento que você cria uma variável e define o tipo dela, ela só receberá os valores que foram definidos. 

**Os tipos de dados suportados pelo TypeScript**

```
string: sequência de caracteres
```

```
number: números
```

```
array: elementos e valores
```

```
boolean: verdadeiro ou falso
```

```
enum: lista de valores
```

```
tuple: array com diferentes tipos
```

```
void: retorno de uma função
```

```
any: utilizado quando não se sabe o tipo de dado
```

**Principais Frameworks que utilizam o TypeScript**

- NET Core;

- React;

- Angular;

- js.

**Interfaces**

Nada mais é que a descrição da estrutura do objeto, sendo assim, descrevendo como esse objeto deve aparecer. O **_TypeScript_** tem uma interface que contém apenas definições de propriedades e métodos, e não toda a sua implementação. É uma funcionalidade simples da classe que realiza ligação entre a interface fornecendo assim a conexão com todos os paramentos da interface. 

Existem diversos exemplos de interfaces a serem criadas no TypeScript e posso fazer um artigo especificamente sobre isso. 



**Preparando o seu ambiente**

**_TypeScript_** pode ser executado em qualquer ambiente e você pode usar qualquer editor para criar arquivos _TS_. Afinal, a maioria dos editores agora oferece suporte à resolução de tipo do **_Typescript_**. No entanto, eu pessoalmente recomendo o _VSCode_, pois é o editor originalmente desenvolvido para uso com TS, deixo aqui o [link para download](https://code.visualstudio.com/download). Ou seja, ele já suporta todos os recursos do **_Typescript_** por padrão e ainda vem com uma versão própria integrada caso você precise analisar um arquivo, mas ainda não o tenha instalado em seu computador.

**Universo TS**

Hoje o crescimento do _TS_, tem sido de forma abrangente englobando tanto o universo **front-end** e tanto quanto o **back-end**. 

Em resumo, vale a pena dedicar seu tempo para o estudo do _TS_, se você já possui uma enorme familiaridade com os _JS_, e quer incrementar mais ainda seu portifólio profissional. 

**POO**

O **_TypeScript_** no seu uso temos recursos que suportam melhor o uso da _Programação Orientada a Objetos_, que se baseia em _quatro pilares fundamentais_: **encapsulamento, herança, abstração e polimorfismo**. A **POO** sempre foi e é um problema quando aplicada ao **_JavaScript_** porque sua sintaxe não permite que as classes sejam escritas de forma tão clara.

A POO é outro universo à parte que com certeza podemos abordar em um próximo artigo, então se você tem interesse em saber mais, já me siga aqui e acompanhe os meus artigos sobre programação, tecnologia e DevRel.

-

Espero muito que tenha ajudado você, que está buscando um conteúdo introdutório de **_TypeScript_** com um linguagem de fácil entendimento, e se ficou alguma dúvida ou deixei de falar sobre algo, deixe nos comentários abaixo, que estarei respondendo sempre!

Nos vemos em breve!

Me sigam nas minhas redes:
~ [X](https://twitter.com/larideoliiveira)
~ [Instagram](https://www.instagram.com/larideoliiveira/)
~ [Canal do Youtube](https://youtube.com/larideoliiveira)