TypeScript: Superconjunto de JavaScript que gera JavaScript

Seguindo a trilha de posts relacionados ao The Developers Conference – TDC que participarei com o ingresso que ganhei da SoftDesign (empresa que trabalho).

TypeScript é uma linguagem de programação (livre e de código aberto) desenvolvida e mantida pela Microsoft. É um superconjunto de JavaScript que gera JavaScript.

A sintaxe do TypeScript lembra um pouco a do C#, porém não tem muita diferença entre o código que tu escreve e o código gerado em JavaScript.

Classe gerada em TypeScript

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = messsage;
    }
    greet() {
    	return "Hello, " + this.greeting;
    }
}

var greeter = new Greeter("world");

var button = document.createElement('button');
button.textContent = "Say Hello";
button.onclick = function() {
    alert(greeter.greet());
}

document.body.appendChild(button);

Código gerado em JavaScript

var Greeter = (function () {
    function Greeter(message) {
        this.greeting = message;
    }
    Greeter.prototype.greet = function() {
    	return "Hello, " + this.greeting;
    };
    return Greeter;
})();

var greeter = new Greeter("world");

var button = document.createElement('button');
button.textContent = "Say Hello";
button.onclick = function () {
    alert(greeter.greet());
};

document.body.appendChild(button);

Observando os dois códigos é possível notar que são muito semelhantes, na minha opinião ele é apenas um açucar sintatico para o JavaScript.

Tipos básicos

Essa linguagem de programação foi construída para facilitar a vinda de quem trabalha em linguagens de baixo nível, ou linguagens fortemente tipadas.

Boolean

Um dos tipos de dados mais simples é o verdadeiro/falso.
var isValid: boolean = true;

Number

Assim como no JavaScript os números em TypeScript são pontos fluantes, i.e. possuem casas decimais para precisão.
var height: number = 28;

String

As strings são largamente utilizadas para armazenar os textos, mensagens ao usuário. Podendo utilizar aspas simples (‘) ou aspas duplas (“) para armazenar o conteúdo.

var name: string = "fabian";
name = 'corrêa marques';

Array

Assim como o JavaScript é possível utilizar o array em TypeScript, o ganho que nós temos aqui é que pode ser feito a declaração do tipo de dados que estaremos trabalhando.
var list:number[] = [28, 11, 31, 17];
Outra forma para declararmos o array é igual a listas do C#.
var list:Array = [17, 11, 31, 28]

Enum

Muito utilizado em programação orientada a objeto para forçar os dados a serem dos tipos pré-definidos o TypeScript possui o tipo de dados Enum. O Enum é um tipo de dados que deixa mais amigável trabalhar com um conjunto de valores numéricos.

enum Cor { Verde, Vermelho, Azul };
var c: Cor = Cor.Verde;

Por padrão a numeração dada aos valores do enum começa a partir do zero, porém é possível mudar o número pelo qual começará definindo o valor primário.

enum Cor { Verde = 1, Vermelho, Azul };
var c: Cor = Cor.Verde;

Podendo também ser definido todos os valores quando estão sendo criados.

enum Cor { Verde = 1, Vermelho = 6, Azul = 18 };
var c: Cor = Cor.Verde;

Um dos recursos mais utilizados no C# quando estamos trabalhando com o Enum é a possibilidade de pegar o nome do Enum que é solicitado.

enum Cor { Verde = 1, Vermelho, Azul };
var corNome: string = Cor[2];
alert(corNome);

Any

Quando precisamos descrever um tipo de dados de uma variável que nós não sabemos qual será o tipo de dados a ser armazenado, e.g. quando estamos recebendo o conteúdo de um servidor de cliente, podemos definir ele como any transformando ele em um coringa. Ele faz a mesma coisa que o var do JavaScript e C#.

var qualquerCoisa: any = 4;
qualquerCoisa = "poderei receber um texto";
qualquerCoisa = true; //sim, ele será um tipo de dados 'booleano'

Void

E por último, temos o tipo de dados void que é o oposto do any. Ele é a ausência de definição de tipo de dados, largamente utilizado em funções que não retornam valores.

function aviso(): void {
	alert("Pense bem antes de votar.");
}

Considerações finais

Para quem é do mundo C# e sempre trabalhou no lado do servidor sem contato com a camada de apresentação vejo como sendo uma ótima linguagem para entrar no mundo web.
Para as pessoas que já tem experiência no mundo web não vejo como uma boa opção para trabalhar, pois é mais outra ferramenta de açúcar sintático disponível no mercado, assim como o CoffeeScript, Dart, Haxe.

Na minha visão o TypeScript veio apenas para tentar ser uma tentativa de reinventar a roda.

Considero essa uma das palestras que mais desejo ver para tentar aprofundar o conhecimento, tentar observar algum motivo pelo qual valha apena usar essa linguagem.

Outros exemplos de código gerado em TypeScript podem ser encontrados na TypeScriptLand Playground


Publicado

em

por

Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.