Clases

4/28
Recursos
Transcripci贸n

Dentro de TypeScript podemos realizar programaci贸n orientada a objetos y como su nombre lo dice vamos a programar objetos, pero para generar dichos objetos primero debemos crear su plantilla base que recibe el nombre de clase.

Una clase est谩 integrada por propiedades y funciones, estas pueden ser privadas, p煤blicas o protected.

A la variable que le asignamos el valor de un objeto debemos indicarle que su tipo de dato es igual a la clase.

Una caracter铆stica de la programaci贸n orientada a objetos es que podemos crear clases padre que hereden sus propiedades y funciones a una clase hijo, esto es la herencia y dentro de TypeScript se representa con la palabra extends.

Aportes 58

Preguntas 6

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

no lo se rick parece java XD

Sintaxis General de una clase

class Nombre{
  //atributos
  nivelAcceso nombre: tipoDato;

  //constructor(nombreAtributo: tipoDato){
    this.nombreAtributo =  nombre
  }

  //metodos o comportamientos
  getAtributo(){
   return this.nombreAtributo;
  }

  setAtributo(nombre: tipoDato){
   this.nombreAtributo = nombre;
  }
}

Con la palabra reservada extends heredamos una clase a otra.
Con la palabra reservada super accedemos a los atributos y m茅todos de la clase padre para utilizarlos en la clase hija.

Alan, primero quiero decirte que explicas s煤per bien y respecto a tu pregunta creo que la implementaci贸n de TypeScript depende mucho del tama帽o del proyecto en el que se trabaje. Para un sistema muy grande y robusto creo que la mejor opci贸n es implementar TypeScript ya que nos ayudar铆a a evitar errores dentro de nuestro programa y al mismo tiempo nos har铆a el trabajo de mantenimiento mucho mas sencillo. Pero para un proyecto mas sencillo sigue siendo una buena opci贸n Vanilla JavaScript.

Me gustar铆a saber que opinas?

Saludos!

Me recuerda a Java

Genial TypeScript es como mi lenguaje favorito JAVA, f谩cil de manejar jaja

El tipado de typescript es muy bueno.

Recomiendo el curso de typescript:
https://platzi.com/clases/typescript/

Buenas noches, le paso mi aporte

type speed = number;
type formOfMovility = string;
export class Transport {

    constructor(private _speed: speed, private _formOfMovility: formOfMovility) { }

    public get speed() {
        return this._speed;
    }

    public set speed(value: speed) {
        this._speed = value;
    }

    public get formOfMovility(): formOfMovility {
        return this._formOfMovility;
    }

    public set formOfMovility(value: formOfMovility) {
        this._formOfMovility = value;
    }

}

type numOfDoors = number;
export class Car extends Transport {
    constructor(speed, formOfMovility: formOfMovility, private _numOfDoors: numOfDoors) {
        super(speed, formOfMovility);
    }

    public get speed(): speed {
        return super.speed + 10;
    }

    public get numOfDoors(): numOfDoors {
        return this._numOfDoors;
    }

    public set numOfDoors(value: numOfDoors) {
        this._numOfDoors = value;
    }
}


const transport: Transport = new Transport(20, 'suelo');
const car = new Car(20, 'suelo', 4);

Con typescritp se podr铆a ahorrar c贸digo y dejarlo m谩s limpio de la siguiente forma, dejo c贸digo completo de las clases en pastebin.

Clases Typescript

El tema radica en dejar los constructores de la siguiente forma:

constructor(protected velocidad: number, protected formaDeMovilidad: string){}
constructor(protected velocidad: number, protected formaDeMovilidad: string, protected cantidadDePuertas: number) {
    super(velocidad, formaDeMovilidad);
}

Un saludo y gracias.

// creamos nuestra classe utilizando 'class'
class Transporte {
  // asignamos el acceso de sus atributos
  private velocidad: number;
  private formaDeMovilidad: string;

  // creamos un constructor para setear las variables
  // remarcamos que tipos de datos van a ser esas variables
  constructor(velocidad: number, formaDeMovilidad: string) {
    this.velocidad = velocidad;
    this.formaDeMovilidad = formaDeMovilidad;
  }
  
  // creamos nuestros m茅todos 'getters' y 'setters'
  getVelocidad() {
    return this.velocidad;
  }
  setVelocidad(velocidad: number) {
    this.velocidad = velocidad;
  }
  getFormaDeMovilidad() {
    return this.formaDeMovilidad;
  }
  setFormaDeMovilidad(formaDeMovilidad: string) {
    this.formaDeMovilidad = velocidad;
  }
}

// probamos nuestra clase
const transporte: Transporte = new Transporte(20, 'suelo');

// creamos otra clase 'extendiendo' transporte
// hacemos uso de la herencia de programacion Or. a Objetos
class Auto extends Transporte {
  // agregamos m谩s parametros
  private cantidadDePuertas: number;
  
  constructor(
    velocidad: number, 
    formaDeMovilidad: string,
    // agregamos un nuevo elemento
    cantidadDePuertas: number
  ) {
    // usamos super para sobrescribir el constructor
    // hacemos uso del constructor del padre
    super(velocidad, formaDeMovilidad);
    // seteamos nuestro nuevo elemento
    this.cantidadDePuertas = cantidadDePuertas;
  }

  // sobreescribimos funciones de la 'clase padre'
  getVelocidad() {
    return super.getVelocidad() + 10;
  }
  // o tambi茅n creamos las nuevas
  getCantidadDePuertas() {
    return this.cantidadDePuertas;
  }
  setCantidadDePuertas(cantidadDePuertas: number) {
    this.cantidadDePuertas = cantidadDePuertas;
  }
}

// probamos nuestra nueva class
const auto: Auto = new Auto

Definitivamente seguiria usando typescript

La palabra reservada 鈥渟uper鈥 que funci贸n tiene??

Dentro de TypeScript podemos realizar programaci贸n orientada a objetos y como su nombre lo dice vamos a programar objetos, pero para generar dichos objetos primero debemos crear su plantilla base que recibe el nombre de clase.

Una clase est谩 integrada por propiedades y funciones, estas pueden ser privadas, p煤blicas o protected.

A la variable que le asignamos el valor de un objeto debemos indicarle que su tipo de dato es igual a la clase.

Una caracter铆stica de la programaci贸n orientada a objetos es que podemos crear clases padre que hereden sus propiedades y funciones a una clase hijo, esto es la herencia y dentro de TypeScript se representa con la palabra extends.

Lo veo como una fusion de Java y Java Script, es m谩s, su sintaxis es muy similar a Kotlin, pero ahora que desarrollo el back con JS y Nodejs lo veo como una ampliacion de JS para restringir el tipo de dato que se obtiene del cliente y evitar validaciones, pero, siendo sinceros me parece un java flexible. JS me parece mucho mejor.

Si lo usar铆a, me parece una forma de seguir las buenas pr谩cticas que se tienen de los dem谩s lenguajes, pero teniendo lo que hace bueno a JavaScript.

A la variable que le asignamos el valor de un objeto debemos indicarle que su tipo de dato es igual a la clase.

Una caracter铆stica de la programaci贸n orientada a objetos es que podemos crear clases padre que hereden sus propiedades y funciones a una clase hijo, esto es la herencia y dentro de TypeScript se representa con la palabra extends.

En realidad no tengo mucha experiencia en programaci贸n pero pienso que Typescript es un lenguaje excelente para definir bien las clases con las propiedades de la programaci贸n orientada a objetos.

Muy buena la claseeee un gran repaso para POO

Para modificar varias lineas VS Code recuerden que se hace con alt+click en los lugares que quieran modificar 馃槈

Me parece que con TS se puede ser mas organizado.
Me recuerda hace apenas unos a帽os que programaba en C++ jejeje

Que clase de Java es este :v

claro que lo utilizar铆a, sirve demasiado para mantener el control de los errores en nuestro codigo.

Muy buen curso

Sin duda antes de irme a Angular debo terminar este curso

class y extends es de ES6, no se confundan.

Utilizaria TypeScript sin dudar para cualquier proyecto. Es increible como tu c贸digo JS es transformado a objetos. De esta forma es mucho mas ordenado. Lo usar铆a para Agular, React o View. Me da la sensaci贸n como si estuviera trabajando en Java o PHP

Ahora que me encuentro desarrollando un API, de las cosas que m谩s me ha gustado es el autocompletado, eso sin descartar todas las ventajas que mencionan los compa帽eros en los comentarios.

TypeScript es un gran paso para ser un desarrollador en js, lo veo muy necesario aprender鈥 vamos por maaas

TypeScript lo veo como el lenguaje que le da superpoderes a JS y lo hace crecer mucho m谩s de lo que actualmente crece.
Le da funcionalidades al lenguaje que muchas personas quer铆an que tuviera antes y por eso no lo usaban.

Javascript siempre me ha parecido feo, me inclino mas por el backend,pero con typrescript creo que me sentir茅 mucho mas c贸modo, al parecerse mucho mas a la manera habitual con la que trabajo

Me ha gustado mucho el curso.

Creo que si es necesario incluir Typescript en los proyectos de Angular y React, d谩ndole as铆 al desarrollador m谩s control por las bondades que incluye TS

Tengo una duda, 驴Hay limite en cuento al numero de par谩metros que se pasa dentro de una funci贸n constructora?

buena clase, me encanta el parecido que esto tiene con java y c#. Creo que voy a aprender mucho m谩s r谩pido de lo que pensaba. Ademas que el instructor es bastante bueno.

En definitiva prefiero typeScript.

es excelente, ya trabajo con angular y ionic

Si Si Si , cambiar铆a a Javascript por Typescript y eso que recien estoy empezando, hay mucho mas orden, siento que me puedo adaptar muy facil ^^

se puede usar typescript en react y vue

Definitvamente lo usar铆a

Si lo cambiar铆a porque le da mucho orden al c贸digo y me parece mas f谩cil de leer e interpretar.

<class Transporte{
    private velocidad: number;
    private formaDeMovilidad: string;

    //metodo constructor
    constructor(velocidad: number, formaDeMovilidad: string){
        this.velocidad = velocidad;
        this.formaDeMovilidad = formaDeMovilidad;
    }
    //metodos setters y getters
    getVelocidad(){
        return this.velocidad;
    }
    setVelocidad(velocidad: number){
        this.velocidad = velocidad;
    }


    getFormaDeMovilidad(){
        return this.formaDeMovilidad;
    }
    setFormaDeMovilidad(formaDeMovilidad: string){
        this.formaDeMovilidad = formaDeMovilidad;
    }
}
//Forma de instanciar una clase
const transporte: Transporte = new Transporte(20, 'suelo');

//Auto hereda de Transporte
class Auto extends Transporte{
    private puertas: number;

    //el metodo constructor utilizado es el del padre con un parametro adicional propio de la clase hijo
    constructor(velocidad: number, formaDeMovilidad: string, puertas: number){
       //los parametros del padre
       super(velocidad, formaDeMovilidad);
       this.puertas = puertas; 
    }
    //sobrescribir funciones de la clase padre
    getVelocidad(){
        //llamamos a la funcion del padre
        return super.getVelocidad() + 10;
    }

    getPuertas(): number{
        return this.puertas;
    }
    setPuertas(puertas: number){
        this.puertas = puertas;
    }
}

const auto: Auto = new Auto(10, 'suelo', 4);>

Esto es muy parecido a un POJO(Plain Old Java Object) en el contexto de Java

Excelente TypeScript para angular

Dentro de TypeScript podemos realizar programaci贸n orientada a objetos y como su nombre lo dice vamos a programar objetos, pero para generar dichos objetos primero debemos crear su plantilla base que recibe el nombre de clase.

Una clase est谩 integrada por propiedades y funciones, estas pueden ser privadas, p煤blicas o protected.

Muy buena explicaci贸n, aunque es un poco enredado, sin dudas Typescript da un mejor control al c贸digo y lo deja a prueba de futuros errores.

https://gyazo.com/bddd3c0125472faaca3413ea5895e008 tengo este fallo y no se por que 馃槙

Mi respuesta ser铆a: depende, depende de qu茅 aplicaci贸n est茅 haciendo y quiz谩 de la experiencia. Quiz谩 si vengo del mundo de Java que es 100% orientado a objetos, ser铆a bueno utilizar typescript, ya que el manejo de clases es muuuuy parecido y perder ese control en el tipado podr铆a confundirme al utilizar JS.

Antes no lo usaba, la verdad no s茅 por qu茅, pero ya trabajando en un proyecto real me he dado cuenta lo importante que es y lo mucho que ayuda al equipo de trabajo.

Buena clase, estoy mas familiarizado con JAVA, C#鈥 y claro que incluiria.

Definitivamente cambiar铆a a TypeScript, al inicio de mi carrera cuando iniciaba en web llegu茅 a tener problemas por la falta de control por la libertad de JavaScript, prefiero perder esa flexibilidad para poder usar la POO nuevamente.

No lo se rick parece C++ JAJAJA

De aqu铆 para el curso de Programaci贸n Orientada a Objetos

Que es mejor empezar con typescript para aprender algun lenguajes y las sintaxis jajajaj

Actualmente podemos utilizar getters y setters para el encapsulamiento

Class MyClass {
	private variable: any;
	
	get Variable() {
		//l贸gica de negocio para lectura
		return this.variable;
	}

	set Variable(valor) {
		//l贸gica de negocio para escritura
		this.variable = valor;
	}
}
// Se usan como parametros normales
const instance = new MyClass();
instance.Variable = 'Alg煤n valor';

La historia de mi vida鈥
aprende JAVA
desaprende java para trabajar con Node
repasa java para Trabjar con TypeScript鈥
{inserte meme de tony stark con la mano en la frente aqu铆.}

Excelente explicaci贸n

Ahora conociendo TypeScript lo prefiero sobre vanilla, es desarrollar a otro nivel con Javascript.

Vengo de JS y si utilizar铆a TS me da mas control del c贸digo, puedo evitar muchos errores comunes que suele ocurrir en JS y me parece genial, Gran clase, Creo que se debi贸 haber mencionado realizar el curso de TS ya que este curso ayuda a consolidar los temas vistos en este.

excelente pero porque usar typeScript si tenemos lenguajes de programacion que ya hacen eso y ademas javascript te deja mas abierto a los tipos ?