Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018...

56
Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1

Transcript of Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018...

Page 1: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Curso Angularn Tema 01b

03/07/2018 CURSO JAVASCRIPT 1

Page 2: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Introducción Typescript

Instalación y ejecución del compilador

Tipos básicos

Funciones

Clases e interfaces

Escritura de código reutilizable con genéricos

Angular y Typescript

Page 3: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Introducción a typescript

Page 4: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Tipos dinámicos contra tipos estáticos

Introducción a Typescript

Beneficios de aprender y utilizar Typescript

Page 5: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Diferencia entre tipos dinámicos y estáticos

Dinámico Estático

Tipo determinado en la declaración Tipo determinado en la declaración

Puede cambiar a lo largo de todo el programa libre de errores

No puede cambiar en tiempo de ejecución sin causar un error

Page 6: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Introducción a Typescript

JavaScript fuertemente tipado

Compilador Javascript OpenSource

Compila a Javascript

Desarrolladopor Microsoft

Estilo de programación más declarativo

Totalmente soportado por Angular 2/4/5

Typescript

ES6

ES5

Page 7: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

¿Qué ofrece TypeScript

Validación de tipos estático

Características ES6

Objetos basados en clase

Modularidad

Page 8: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Beneficios

Editores

Page 9: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Amigos de TypeScript

Page 10: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Instalación y Ejecución del compilador TypeScript

Page 11: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Instalación de TypeScript

Compilación de un fichero de ejemplo TypeScript

Page 12: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Descargar e Instalar Node

Descarga de node

Page 13: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Actualizar node

Ejecutar powerShell como administrador:

Set-ExecutionPolicy Unrestricted -Scope CurrentUser –Force

npm install --global --production npm-windows-upgrade

Ejecutar: npm-windows-upgrade

npm-windows-upgrade --npm-version latest

Page 15: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Editor

Visual Studio Code

Page 16: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Actualizar npm

En una terminal ejecutar npm i –g npm

Page 17: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Instalar typescript

npm i -g typescript

Page 18: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Ejemplo 1

Crear el fichero ejemplo-01.ts

Page 19: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Compilar el fichero

Fichero generado

Código javascriptgenerado

Page 20: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Tipos básicos

Page 21: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Tipos básicos

Variables

Vectores y Matrices

Page 22: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Tipos básicos

String

Boolean

Number

Enum

Any

Void

Null

Undefined

Page 24: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador
Page 25: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador
Page 26: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Vectores y Matrices

Page 27: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador
Page 28: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Trabajando con funciones

Page 29: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Declaración de funciones y expresiones

Tipos de función

Parámetros opcionales

Parámetros por defecto

Page 30: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Declaración de funciones y expresiones

Page 31: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador
Page 32: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador
Page 33: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Parámetros opcionales

Page 34: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Parámetros por defecto en una función

Page 35: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Nº indefinido de parámetros en una función

Page 36: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Clases e Interfaces

Page 37: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Importancia de tener clases

Definición de una clase

Herencia

Definición de una interfaz

Page 38: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Clases

Ofrece una abstracción estructural

Forma consistente para los desarrolladores

Desarrollo orientado a objetos utiliza concepto de clase

Page 39: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador
Page 40: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Ejemplo de una clase

Page 41: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Herencia

Page 42: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador
Page 43: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

class Persona {public hobby: string;constructor(

private nombre: string,private edad: number) { }

info(): void {console.log(this.nombre + ' ' +

this.edad);}

}const pedro = new Persona('Pedro', 20);pedro.info();class Jugador extends Persona {

constructor(nombre: string, edad: number) {super(nombre, edad);

}}const alejandro = new Jugador('Alejandro', 35);alejandro.info();console.log(pedro);console.log(alejandro);

Page 44: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Interfaz

Contienen solo la decoración de los miembrosEs un contratoSe usa para describir un tipo complejo

Page 45: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador
Page 46: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

interface Persona {nombre: string,edad: number

}const juan: Persona = {

nombre: 'Juan',edad: 50

}interface Vehiculo{

drive(): any;}class Automovil implements Vehiculo{

drive(): void {console.log('conduciendo un automóvil');

}}class Bicicleta implements Vehiculo{

drive(): void {console.log('conduciendo una bicicleta');

}}

const auto = new Automovil();const bici = new Bicicleta();

auto.drive();bici.drive();

Page 47: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Genericos

Page 48: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Función genérica

Problema de cola

Solución al problema de cola

Page 49: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador
Page 50: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador
Page 51: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

Number.toString();String.toString();Boolean.toString();

function primitivetoString<T>(type: T): string {return type.toString();

}

[Number, Boolean, String].forEach(function (type) {console.log(primitivetoString(type));

})

Page 52: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador
Page 53: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

class ColaDeNumeros {private datos = [];push(item: number) {

this.datos.push(item);}pop() {

this.datos.shift();}

}const cola = new ColaDeNumeros();cola.push(1);cola.push(2);cola.push(3);console.log(cola);

Page 54: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador
Page 55: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador

class Cola<T> {private datos = [];push(item: T) {

this.datos.push(item);}pop() {

this.datos.shift();}

}const colaDeNumeros = new Cola<number>();colaDeNumeros.push(10);colaDeNumeros.push(20);console.log(colaDeNumeros);

const colaDeCadenaCaracteres = new Cola<string>();colaDeCadenaCaracteres.push('Curso');colaDeCadenaCaracteres.push('TypeScript');console.log(colaDeCadenaCaracteres);

Page 56: Curso Angularn Tema 01b - Technical University of Valencia · Curso Angularn Tema 01b 03/07/2018 CURSO JAVASCRIPT 1. Introducción Typescript Instalación y ejecución del compilador