No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
3 Hrs
47 Min
36 Seg

Class

2/25
Recursos

Aportes 13

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

TypeScript cada vez me gusta más.

Les comparto mis apuntes. 😄

¿Qué es class?

  • JavaScript es un lenguaje orientado a objetos, pero está basado en prototipos.
  • Las clases son una sintaxis más amigable para trabajar con prototipos, las clases internamente son prototipos.
  • La utilizamos para construir instancias de objetos, es como un molde para crear cosas.

Buenas prácticas

Es una buena práctica inicializar las propiedades que coloquemos en nuestra clase, ya sea por fuera o dentro de nuestro constructor.

Codigo de la clase

const date = new Date();
date.getHours();
date.getTime();
date.toISOString();

const date2 = new Date(1993, 1, 12); // 0 = enero, 11 = dic

date2.getHours();
date2.getTime();
date2.toISOString();

console.log(date);
console.log(date2);


class MyDate {
  year: number;
  month: number;
  day: number;

  constructor(year: number, month: number, day: number) {
    this.year = year;
    this.month = month;
    this.day = day;
  }
}

const myDate = new MyDate(2021, 3, 13);
console.log(myDate);

Mi código

type CustomDateConstructor = {

  year: MyCustomDate['year'],
  month: MyCustomDate['month'],
  day: MyCustomDate['day']
};

class MyCustomDate {

  public year: number;
  public month: number;
  public day: number;

  constructor({year, month, day}: CustomDateConstructor) {

    this.year = year;
    this.month = month;
    this.day = day;
  }

  getDate() {
    return `The date is ${this.day}/${this.month}/${this.year}`
  }
}

const newDate = new MyCustomDate({day: 12, month: 10, year: 2012});

Excelente class… me encanto la forma como lo explicó!
Comparto mis apuntes y agradezco mucho si alguien tiene alguna corrección.

// se crea una instancia de la class Date
//la const date es del type Date
//Al crear la nueva instancia tenemos diponibles todos los //métodos de la misma
//Dichos métodos son funciones y como tal se ejecutan con ()
// y también pueden recibir arguementos

const date = new Date()
date.getHours()
date.getDate()
date.toISOString()

// las clases tienen un constructor el cual también puede recibir //parámetros (como una función).
// y sirven para inicializar la clase con ciertos valores

const date2 = new Date (2001, 2, 29)
date2.getHours()
date2.getDate()
date2.toISOString()
console.log("🚀 ~ file: 01-class.ts ~ line 14 ~ date", date)
console.log("🚀 ~ file: 01-class.ts ~ line 14 ~ date2", date2)

let myVar


//para crear una clase (molde) utilizo la palabra reservada class
//al crear una propiedad de una clase la debo tiṕar e inicializar //al momento de declararla. Pero también puedo 
// hacerlo en el contructor que es la función que
//recibe los parámetros, cuando se genera una nueva instancia
// para ello utilizamos la palabra reservada constructor.
//para referirmos a una propiedad de una clase es decir una //variable interna de la clase
// nos referimos a dicha propiedad con la palabra reservada //this.nombre_de_la_variable


class MyDate{
  year:number
  month: number
  day:number

  constructor(year:number, month: number, day:number){
    this.year = year
    this.month = month
    this.day = day
  }
}

//ahora podemos generar una nueva istancia de nuestra clase

const myDate = new MyDate(2021, 4, 31)
console.log("🚀 ~ file: 01-class.ts ~ line 47 ~ myDate", myDate)
Quien en 2024?
Clases son como moldes que devuelven objetos estructurados. bajo los parametros que definamos definamos.
Viendo este video me doy cuenta que yo creo que una de las cosas que no cambiaria en mi carrera es que empece a programar con un lenguaje fuertemente tipado. Y yo personalmente recomendaría a los que van empezando que lo hicieran también, no solo te obliga a tener buenas practicas sino que también cuando no lo tienes sigues esas buenas practicas y reduces la cantidad de errores a largo plazo.
Si no queremos inicializar una avariabel en nuestro proyecto y que no nos genere el error en las variable NO inicializadas. Podemos agregar en el tsconfig.ts "strictPropertyInitialization": *false*. Así: "compilerOptions": { "strictPropertyInitialization": *false*, } Este te permitirá que no se inicialice tus variables.
no me generó la carpeta dist y no se porque
en la consola me terminal me salen 4 problemas con el .tsbuildinfo "tsbuildinfo": Unknown word.

Clases en ts > clases en js

Interesante!