SlideShare uma empresa Scribd logo
Codelab: TypeScript
GDG Feira de Santana
Por quê?
● Pense na Web alguns anos atrás.
● Sites dinâmicos: DHTML, JQuery, AJAX
● Aplicação monolítica: problemas com escopo e carregamento de bibliotecas
Por quê?
● HTML5
● CSS3
● ES6
● Aplicações de larga escala
● OOP
Características do TypeScript
● Criado pela Microsoft
● Todo JS é um TS válido: reaproveita seu código
● Produtividade:
○ ferramentas
○ tipagem estática
○ análise de código
● Fácil para quem veio do C#, Java, C++, etc.
● Utilizado pelo Google no Angular 2
Requisitos
● Node e npm
● npm install -g typescript
● Visual Studio Code ou Atom + atom-typescript
● tsc --init
Tipos básico
var players: number=11
var brand: string='Yamaha'
var message: string = `Today it's a happy day!
I just bought a new ${brand} sportbike`;
var isMarquezFasterThanRossi: boolean = false;
var brands: string[] = ['Yamaha', 'Honda', 'Ducati'];
Tipos básico
var something: any;
something=2016;
something='LordOfTheRings'
var itens: Array<string>;
Tipos básico
enum Brands { Honda, Yamaha, Suzuki, BMW, Ducati, Triumph};
enum JapaneseBrands { Honda = 1, Yamaha, Suzuki};
enum EuropeanBrands {BMW=10, Ducati=20, Trimph=30}
let sym1 = Symbol();
let sym2 = Symbol("key"); // optional string key
Type Annotations
reset(): void{
points=0;
}
sum(arg1: number, arg2: number): number{
return arg1+arg2;
}
Type Annotations
function sayHello(name: string=' World',greeting?: string): string {
if (!greeting) {
greeting = 'Hello';
}
return greeting+', ' + name;
}
Type Annotations
function greetPeople(greeting: string, ...names: string[]): string {
return greeting + ', ' + names.join(' and ') + '!';
}
Mais exemplos...
● accumulator.ts
● hello.ts
● utils.ts
● point.ts
● point3d.ts
● server.ts
● helloserver.ts
Saiba mais
● www.typescriptlang.org
● http://definitelytyped.org/
● Build 2016: What’s new in TypeScript
● Código dos exemplos:
https://github.com/romualdoandre/gdg-codelab-typescript

Mais conteúdo relacionado

Mais procurados

Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
Jony dos Santos Kostetzer
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
Just Digital
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
Pablo Souza
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
Alexandre Uehara
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
Ale Uehara
 
Primeiros passos com protractor - GUTS-SC
Primeiros passos com protractor - GUTS-SCPrimeiros passos com protractor - GUTS-SC
Primeiros passos com protractor - GUTS-SC
Walmyr Lima e Silva Filho
 
Por que Node JS?
Por que Node JS?Por que Node JS?
Por que Node JS?
Austin Felipe Santos
 
Node.js for Noobs
Node.js for NoobsNode.js for Noobs
Node.js for Noobs
Caio Ribeiro Pereira
 
Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01
Luiz Duarte
 
Node js - O poder do JavaScript do lado do servidor
Node js  - O poder do JavaScript do lado do servidorNode js  - O poder do JavaScript do lado do servidor
Node js - O poder do JavaScript do lado do servidor
Romulo Fagundes
 
MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.
Leonardo Quevedo
 
MEAN
MEANMEAN
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o Nodejs
Caio Cutrim
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJS
Giovanni Bassi
 
Conhecendo mundo Node.js
Conhecendo mundo Node.jsConhecendo mundo Node.js
Conhecendo mundo Node.js
Caio Ribeiro Pereira
 
Groovy stack
Groovy stackGroovy stack
Groovy stack
Leonardo Silva
 
Jclouds jug vale
Jclouds jug valeJclouds jug vale
Jclouds jug vale
Eclis Rodrigues de Castilho
 
Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stack
Sidney Roberto
 
Introdução à Node.js + MongoDB
Introdução à Node.js + MongoDBIntrodução à Node.js + MongoDB
Introdução à Node.js + MongoDB
Luiz Duarte
 

Mais procurados (19)

Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
 
Visao geralti netshoes03
Visao geralti netshoes03Visao geralti netshoes03
Visao geralti netshoes03
 
Primeiros passos com protractor - GUTS-SC
Primeiros passos com protractor - GUTS-SCPrimeiros passos com protractor - GUTS-SC
Primeiros passos com protractor - GUTS-SC
 
Por que Node JS?
Por que Node JS?Por que Node JS?
Por que Node JS?
 
Node.js for Noobs
Node.js for NoobsNode.js for Noobs
Node.js for Noobs
 
Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01
 
Node js - O poder do JavaScript do lado do servidor
Node js  - O poder do JavaScript do lado do servidorNode js  - O poder do JavaScript do lado do servidor
Node js - O poder do JavaScript do lado do servidor
 
MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.
 
MEAN
MEANMEAN
MEAN
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o Nodejs
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJS
 
Conhecendo mundo Node.js
Conhecendo mundo Node.jsConhecendo mundo Node.js
Conhecendo mundo Node.js
 
Groovy stack
Groovy stackGroovy stack
Groovy stack
 
Jclouds jug vale
Jclouds jug valeJclouds jug vale
Jclouds jug vale
 
Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stack
 
Introdução à Node.js + MongoDB
Introdução à Node.js + MongoDBIntrodução à Node.js + MongoDB
Introdução à Node.js + MongoDB
 

Semelhante a Codelab: TypeScript

JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com JasmineJavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
André Willik Valenti
 
JavaScript: uma visão geral da linguagem e seu ecossistema
JavaScript: uma visão geral da linguagem e seu ecossistemaJavaScript: uma visão geral da linguagem e seu ecossistema
JavaScript: uma visão geral da linguagem e seu ecossistema
Fabio Agostinho Boris
 
Impressão 3D Livre
Impressão 3D LivreImpressão 3D Livre
Impressão 3D Livre
André Campos Rodovalho
 
graoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS frameworkgraoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS framework
Marcelo Fleury
 
Palestra Java 8 - V Boot
Palestra Java 8 - V BootPalestra Java 8 - V Boot
Palestra Java 8 - V Boot
André Luiz Forchesatto
 
TDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGLTDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGL
André Curvello
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
tdc-globalcode
 
Secomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao ElixirSecomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao Elixir
Rodrigo Long Chen Kashiwakura
 
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
tdc-globalcode
 
Spring boot
Spring bootSpring boot
Spring boot
John Godoi
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSF
Bruno Borges
 
Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017
Jonathan Filho
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
Eduardo Bohrer
 
Como usar IA para melhorar a qualidade do seu código
Como usar IA para melhorar a qualidade do seu códigoComo usar IA para melhorar a qualidade do seu código
Como usar IA para melhorar a qualidade do seu código
Evandro da Silva Amparo
 
Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...
Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...
Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...
Wagner Mendes Voltz Fusca
 
nodeLHC #secomp2016
nodeLHC #secomp2016nodeLHC #secomp2016
nodeLHC #secomp2016
Douglas Esteves
 
It skills para rh aprender e contratar
It skills para rh  aprender e contratarIt skills para rh  aprender e contratar
It skills para rh aprender e contratar
Ale Uehara
 
Engenharia de Software para Jogos
Engenharia de  Software para JogosEngenharia de  Software para Jogos
Engenharia de Software para Jogos
Ricardo Leite
 
Raspagem de Dados com Python
Raspagem de Dados com PythonRaspagem de Dados com Python
Raspagem de Dados com Python
Thiago Curvelo
 
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDADesenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
Filipo Mór
 

Semelhante a Codelab: TypeScript (20)

JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com JasmineJavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
 
JavaScript: uma visão geral da linguagem e seu ecossistema
JavaScript: uma visão geral da linguagem e seu ecossistemaJavaScript: uma visão geral da linguagem e seu ecossistema
JavaScript: uma visão geral da linguagem e seu ecossistema
 
Impressão 3D Livre
Impressão 3D LivreImpressão 3D Livre
Impressão 3D Livre
 
graoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS frameworkgraoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS framework
 
Palestra Java 8 - V Boot
Palestra Java 8 - V BootPalestra Java 8 - V Boot
Palestra Java 8 - V Boot
 
TDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGLTDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGL
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
Secomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao ElixirSecomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao Elixir
 
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
 
Spring boot
Spring bootSpring boot
Spring boot
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSF
 
Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
Como usar IA para melhorar a qualidade do seu código
Como usar IA para melhorar a qualidade do seu códigoComo usar IA para melhorar a qualidade do seu código
Como usar IA para melhorar a qualidade do seu código
 
Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...
Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...
Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...
 
nodeLHC #secomp2016
nodeLHC #secomp2016nodeLHC #secomp2016
nodeLHC #secomp2016
 
It skills para rh aprender e contratar
It skills para rh  aprender e contratarIt skills para rh  aprender e contratar
It skills para rh aprender e contratar
 
Engenharia de Software para Jogos
Engenharia de  Software para JogosEngenharia de  Software para Jogos
Engenharia de Software para Jogos
 
Raspagem de Dados com Python
Raspagem de Dados com PythonRaspagem de Dados com Python
Raspagem de Dados com Python
 
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDADesenvolvendo Aplicações de Uso Geral para GPU com CUDA
Desenvolvendo Aplicações de Uso Geral para GPU com CUDA
 

Mais de Romualdo Andre

Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?
Romualdo Andre
 
Python Class
Python ClassPython Class
Python Class
Romualdo Andre
 
Dúvidas e respostas sobre carreira de TI: serviço público
Dúvidas e respostas sobre carreira de TI: serviço públicoDúvidas e respostas sobre carreira de TI: serviço público
Dúvidas e respostas sobre carreira de TI: serviço público
Romualdo Andre
 
Tendências 2018
Tendências 2018Tendências 2018
Tendências 2018
Romualdo Andre
 
Iniciando com javaScript 2017
Iniciando com javaScript 2017Iniciando com javaScript 2017
Iniciando com javaScript 2017
Romualdo Andre
 
Codelab HTML e CSS
Codelab HTML e CSSCodelab HTML e CSS
Codelab HTML e CSS
Romualdo Andre
 
Império JavaScript
Império JavaScriptImpério JavaScript
Império JavaScript
Romualdo Andre
 
Angular 2 Básico
Angular 2 BásicoAngular 2 Básico
Angular 2 Básico
Romualdo Andre
 
Facilite a vida com guava
Facilite a vida com guavaFacilite a vida com guava
Facilite a vida com guava
Romualdo Andre
 
Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?
Romualdo Andre
 
Android Studio: Primeiros Passos
Android Studio: Primeiros PassosAndroid Studio: Primeiros Passos
Android Studio: Primeiros Passos
Romualdo Andre
 
Corrigindo o vestibular com Python e OpenCV
Corrigindo o vestibular com Python e OpenCVCorrigindo o vestibular com Python e OpenCV
Corrigindo o vestibular com Python e OpenCV
Romualdo Andre
 
O programador e o super carro
O programador e o super carroO programador e o super carro
O programador e o super carro
Romualdo Andre
 
Identificação de grupos de estudantes no Prosel usando Mapas de Kohonen
Identificação de grupos de estudantes no Prosel usando Mapas de KohonenIdentificação de grupos de estudantes no Prosel usando Mapas de Kohonen
Identificação de grupos de estudantes no Prosel usando Mapas de Kohonen
Romualdo Andre
 
Exercício 2: Aplicações de Algoritmos Evolutivos
Exercício 2: Aplicações de Algoritmos EvolutivosExercício 2: Aplicações de Algoritmos Evolutivos
Exercício 2: Aplicações de Algoritmos Evolutivos
Romualdo Andre
 
Uso de redes neurais na classificação de frutas
Uso de redes neurais na classificação de frutasUso de redes neurais na classificação de frutas
Uso de redes neurais na classificação de frutas
Romualdo Andre
 
Introdução ao JavaScript e DOM
Introdução ao JavaScript e DOMIntrodução ao JavaScript e DOM
Introdução ao JavaScript e DOM
Romualdo Andre
 
Introdução ao XML
Introdução ao XMLIntrodução ao XML
Introdução ao XML
Romualdo Andre
 

Mais de Romualdo Andre (18)

Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?
 
Python Class
Python ClassPython Class
Python Class
 
Dúvidas e respostas sobre carreira de TI: serviço público
Dúvidas e respostas sobre carreira de TI: serviço públicoDúvidas e respostas sobre carreira de TI: serviço público
Dúvidas e respostas sobre carreira de TI: serviço público
 
Tendências 2018
Tendências 2018Tendências 2018
Tendências 2018
 
Iniciando com javaScript 2017
Iniciando com javaScript 2017Iniciando com javaScript 2017
Iniciando com javaScript 2017
 
Codelab HTML e CSS
Codelab HTML e CSSCodelab HTML e CSS
Codelab HTML e CSS
 
Império JavaScript
Império JavaScriptImpério JavaScript
Império JavaScript
 
Angular 2 Básico
Angular 2 BásicoAngular 2 Básico
Angular 2 Básico
 
Facilite a vida com guava
Facilite a vida com guavaFacilite a vida com guava
Facilite a vida com guava
 
Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?Web, híbrido, cross compiled ou nativo: qual escolher?
Web, híbrido, cross compiled ou nativo: qual escolher?
 
Android Studio: Primeiros Passos
Android Studio: Primeiros PassosAndroid Studio: Primeiros Passos
Android Studio: Primeiros Passos
 
Corrigindo o vestibular com Python e OpenCV
Corrigindo o vestibular com Python e OpenCVCorrigindo o vestibular com Python e OpenCV
Corrigindo o vestibular com Python e OpenCV
 
O programador e o super carro
O programador e o super carroO programador e o super carro
O programador e o super carro
 
Identificação de grupos de estudantes no Prosel usando Mapas de Kohonen
Identificação de grupos de estudantes no Prosel usando Mapas de KohonenIdentificação de grupos de estudantes no Prosel usando Mapas de Kohonen
Identificação de grupos de estudantes no Prosel usando Mapas de Kohonen
 
Exercício 2: Aplicações de Algoritmos Evolutivos
Exercício 2: Aplicações de Algoritmos EvolutivosExercício 2: Aplicações de Algoritmos Evolutivos
Exercício 2: Aplicações de Algoritmos Evolutivos
 
Uso de redes neurais na classificação de frutas
Uso de redes neurais na classificação de frutasUso de redes neurais na classificação de frutas
Uso de redes neurais na classificação de frutas
 
Introdução ao JavaScript e DOM
Introdução ao JavaScript e DOMIntrodução ao JavaScript e DOM
Introdução ao JavaScript e DOM
 
Introdução ao XML
Introdução ao XMLIntrodução ao XML
Introdução ao XML
 

Codelab: TypeScript