Skip to main content

Typescript

Status: Concluído

O Typescript é uma linguagem open source desenvolvida com base no Javascript. Foi criada pela Microsoft com o intuito de melhorar e adicionar novas funcionalidades ao Js, os quais são o que caracteriza o Typescript.

Documentação Oficial do Typescript

Link para a documentação do Typescript.

Características

Uma das características que mais diferencia o Typescript do Javascript, é a tipagem. O Js utiliza a tipagem dinâmica, e o Ts utiliza a tipagem estática, ou seja, na hora da declaração da variável, podemos atribuir um tipo padrão para ela.
Ex:

let numeroQualquer: number;
valor = 10.5;

Por causa dessa segurança que a forte tipagem passa para o código, usamos essa linguagem no projeto Obra Play, além de produtividade e maior performance.

Perceba que em Javascript podemos definir uma variável, let numero = 5; e depois mudar seu tipo numero = 'uma string qualquer';. Se fizessemos isso usando TypeScript, o programa nos mostraria um erro, pois inicialmente a variável numero foi tipada de forma implícita como number, e não se pode atribuir uma string à um number.

Instalação

Para instalar e usar o Typescript em sua máquina, você deve ter o NodeJs e o NPM instalados. Para instalar o Typescript globalmente em sua máquina, use o comando:

npm install -g typescript

ou para instalar usando o yarn, digite o comando:

yarn global add typescript

JSX e TSX

O obra play utiliza uma biblioteca Javascript bem famosa, o React. O React pode ser escrito em arquivos com extensões .js ou .jsx. O JSX é uma forma alternativa de sintaxe para o Js, que mescla o HTML e Javascript com intuito de facilitar a vida do programador.

No entanto, o projeto Obra Play é escrito em Typescript, que é um superset do Javascript com mais ferramentas. Então os arquivos React são escritos com a extensão .tsx, que também é uma forma alternativa de sintaxe para o Typescript, que mescla HTML e Typescript.

Tipos comuns do Javascript/Typescript

Os tipos comuns do Typescript são:

  • Number:
// numeros
let num: number = 17;
  • String:
// caracteres
let frase: string = 'Hello World!';
  • Boolean:
 // valores lógicos

let check: boolean = true;
  • Null:
 // valores nulos

let hnull: null;
  • Undefined:

//valores não definidos

let a: undefined;

  • Object:
  let meuObjeto: object;

meuObjeto = {
forma: 'quadrados'
}
  • Array:

let lista: array;

lista = ['1kg de açucar', 'café', 'ovos'];

  • Any:
/* variaveis que podem receber qualquer valor, não é recomendado usar, pois seria o mesmo que não
utilizar o typescript */

let qualquer: any;

qualquer = 18;

qualquer = 'frase';

qualquer = [1, 2, 3]
  • Tupla:
/* é parecido com array, a diferança é que sabemos exatamente o tipo
de cada índice, podendo ser diferentes entre si */

let exemploTupla: [number, string];

exemploTupla = [20, 'não te disse?'];
  • Void:
// o tipo void não retorna nenhum valor

let teste = (): void{
console.log('hello')
};

teste(); // undefined
  • Never:
// cria exceções que nunca devem retornar nada

function(): never{
throw new Error("erro");
} //

Checks de igualdade (== vs ===)

Tanto em Typescript quanto em Javascript, == e === são usados para checar igualdade entre duas ou mais expressões, por mais que pareçam iguais, esses dois operadores possume algumas diferenças:

O operador == compara os valores da expressão:

1 == '1';  // retorna true
1 == 2; // retorna false

O operador === compara o valor e o tipo da expressão, se forem iguais, chamamos isso de igualdade estrita:

1 === '1'  // retorna false , pois um valor tem o tipo number e o outro é uma string

Outros exemplos de retornos usando esses operadores:

if (true == 'true')    // Retorna true
if (true == '1') // Retorna true
if (true == true) // Retorna true
if (true === 'true') // Retorna false
if (true === '1') // Retorna false
if (true === true) // Retorna true (igualdade estrita, mesmo tipo e mesmo valor