All Projects → suissa → typescript-manual

suissa / typescript-manual

Licence: other
Manual para o TypeScript

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

#TypeScript

##Instalação Antes de tudo vamos instalá-o.

npm install -g typescript

##Introdução O TypeScript é um superset de Javascript.

- E o que isso quer dizer?

Basicamente que ele agrega ao Javascript sem precisar mudar nada em como escrevemos normalmente, difernetemente do CoffeeScript que é um subset. NO caso do TypeScript se você escrever Javascript normalmente ele é um código de TypeScript válido e ainda inferencia os tipos sem você precisar escrever nada diferentes

-Ué como assim?

Certo. Vamos a um exemplo prático.

var idade = 14;

idade = 'Novinha';

Agora vamos compilar com o TypeScript utilizando o comando tsc

tsc ex01
ex01.ts(3,1): error TS2323: Type 'string' is not assignable to type 'number'.

Além de inferenciar o tipo diretamente nas variáveis ele inferencia também nas funções como podemos ver abaixo.

function oi() {
  return "Oi";
}

Nesse caso quando chamamos a função oi() o TypeScript inferencia que é uma String e nos provê autocomplete para esse tipo de objeto, como visto na imagem abaixo.

Uma das melhores coisas que podemos fazer com TypeScript é tipar nossos parâmetros, confesso que sempre senti falta disso no Javascript. :p

Para criamos uma variavel tipada é muito facil, como visto no código abaixo:

var idade: number;

Para tipar parametros é bem simples, basta usarmos var: tipo diretamente no parametro:

function somar(a: number, b: number) {
  return a + b;
}

Que compila para:

function somar(a, b) {
    return a + b;
}

Bem simples não?

Então você pergunta.

- Ué mas não vi nada de diferente no código.

Corretíssimo, agora veja o que acontece se chamarmos essa função passando uma String.

console.log(somar(3,2));
console.log(somar(3,'Suissa'));

Então rodamos esse exemplo:

tsc ex02.ts
ex02.ts(6,21): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'.

Nesse caso o erro diz que o argumento do tipo 'string' não pode ser atribuído ao parâmetro do tipo 'number'.

##Declarações de Ambiente
Como nós precisamos definir nossas varáveis antes de usar, quando utilizamos globais como: exports, document, window. O TypeScript não irá automaticamente reconhecer essa global, isso é um problema caso você não saiba desse detalhe, vamos ver como o código abaixo irá quebrar:

exports.oi = function () {
    console.log('oi');
};
tsc declare.ts
declare.ts(1,1): error TS2304: Cannot find name 'exports'.

Para resolvermos isso precisamos apenas declarar exports como uma variável de ambiente usando declare.

declare var exports;
exports.oi = function () {
    console.log('oi');
};

##Tipo para Função

##Tipo para Objeto ###Interface ##Sub-tipos ##Classes ##Tipo ENUM ##Overloading em Parâmetros String ##Tipos Genéricos e Funções

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].