25
Olhe teu Tipo, Script

TypeScript - Olhe teu tipo, script slides

  • Upload
    suissa

  • View
    335

  • Download
    1

Embed Size (px)

Citation preview

Page 1: TypeScript - Olhe teu tipo, script slides

Olhe teu Tipo, Script

Page 2: TypeScript - Olhe teu tipo, script slides

Superset

Page 3: TypeScript - Olhe teu tipo, script slides

Instalação

npm install -g typescript

Page 4: TypeScript - Olhe teu tipo, script slides

Tipos

var idade = 14;idade = 'Novinha';

Page 5: TypeScript - Olhe teu tipo, script slides

Tipos - Erro

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

Page 6: TypeScript - Olhe teu tipo, script slides

Tiposvar idade: number;

var list:number[] = [1, 2, 3];var list:Array<number> = [1, 2, 3];

Page 7: TypeScript - Olhe teu tipo, script slides

Tipos - Autocomplete

function oi() {return "Oi";

}

Page 8: TypeScript - Olhe teu tipo, script slides
Page 9: TypeScript - Olhe teu tipo, script slides

Tipos - Parâmetros

function somar(a: number, b: number) {

return a + b;}

Page 10: TypeScript - Olhe teu tipo, script slides

Tipos - Parâmetros compilado

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

}

Page 11: TypeScript - Olhe teu tipo, script slides

Tipos - Funçãofunction testaDeMaior(idade : number) : boolean { if(idade >= 18)

return true; return false;}

Page 12: TypeScript - Olhe teu tipo, script slides

ENUMenum States {

New,Active,Disabled

}

console.log(States.Active);// 1console.log(States[States.Disabled]);// Disabled

Page 13: TypeScript - Olhe teu tipo, script slides

ENUM - Compiladovar States;(function (States) {

States[States["New"] = 0] = "New";States[States["Active"] = 1] = "Active";States[States["Disabled"] = 2] = "Disabled";

})(States || (States = {}));console.log(1 /* Active */);// 1console.log(States[2 /* Disabled */]);

Page 14: TypeScript - Olhe teu tipo, script slides

Tipos - Interfaceinterface Beer {

name: string;price: number;alcohol: number;description: string;

};

Page 15: TypeScript - Olhe teu tipo, script slides

Interfacevar Kaiser: Beer = { name: "foo"

, price: 3, alcohol: 4

};

Page 16: TypeScript - Olhe teu tipo, script slides

Interface Errointerface.ts(8,5): error TS2322: Type '{ name: string; price: number; alcohol: number; }' is not assignable to type 'Beer':Property 'description' is missing in type '{ name: string; price: number; alcohol: number; }'.

Page 17: TypeScript - Olhe teu tipo, script slides

Interface - Atributo Opcionalinterface Beer {

name: string;price: number;alcohol: number;description?: string;

};

Page 18: TypeScript - Olhe teu tipo, script slides

Interface - Extendsinterface Programador {

linguagem: string;tempoProgramador: number;

}

interface Professor {curso: string;

}

interface Suissa extends Programador, Professor {sideLength: number;

}

Page 19: TypeScript - Olhe teu tipo, script slides

Interface - Extendsvar Jean = <Suissa>{};Jean.linguagem = "Javascript";Jean.tempoProgramador = 10;Jean.curso = 'Be MEAN';

Page 20: TypeScript - Olhe teu tipo, script slides

Arrow Functionvar SabeOQueElaQuer = () => { return 'PAUUUUU' };

/* Compila paravar SabeOQueElaQuer = function () {

return 'PAUUUUU'};*/

Page 21: TypeScript - Olhe teu tipo, script slides

Classesclass Professor {

fullname : string;constructor(public firstname, public lastname) {

this.fullname = firstname + " " + lastname;}

}interface Person {

firstname: string;lastname: string;

}var user = new Professor("Jean", "Nascimento");

Page 22: TypeScript - Olhe teu tipo, script slides

Classes - implementsinterface StringValidator {

isAcceptable(s: string): boolean;}

var letrasRegex = /^[A-Za-z]+$/;var numerosRegex = /^[0-9]+$/;

Page 23: TypeScript - Olhe teu tipo, script slides

Classes - implementsclass ApenasLetras implements StringValidator {

isAcceptable(s: string) {return letrasRegex.test(s);

}}

class CEPValidator implements StringValidator {isAcceptable(s: string) {

return s.length === 8 && numerosRegex.test(s);}

}

Page 24: TypeScript - Olhe teu tipo, script slides

Classes - implementsvar strings = ['Suissa', '85010300', '101'];var validadores: { [s: string]: StringValidator; } = {};validadores['CEP'] = new CEPValidator();validadores['Apenas letras'] = new ApenasLetras();

strings.forEach(s => {for (var nome in validadores) {

console.log('"' + s + '" ' + (validadores[nome].isAcceptable(s) ? ' corresponde ' : ' não corresponde ') + nome);}

});

Page 25: TypeScript - Olhe teu tipo, script slides

Modulesmodule Namespace {

export class Classe {quer = 'PAU'

}}

var SabeOQueEla = new Namespace.Classe;console.log(SabeOQueEla.quer);// PAU