Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Repaso a TypeScript: tipos y POO

5/23
Recursos

NestJS utiliza TypeScript como lenguaje de programación y conocer sus características y qué le adiciona a Javascript te convertirá en un profesional más completo de esta tecnología.

Qué es TypeScript

TypeScript es un lenguaje de programación mantenido por Microsoft. En otras palabras, es un “superconjunto” de Javascript que le agrega tipado de datos y programación orientada a objetos.

El código fuente escrito en TypeScript, se “transpila” a código Javascript que es el que finalmente entienden los intérpretes de Javascript como los navegadores web o NodeJS.

Tipado de Datos con TypeScript

Con Javascript puedes crear una variable del tipo String y posteriormente asignarle un valor del tipo Entero o Boolean. Esto es propenso a tener errores en tiempo de ejecución.
TypeScript permite tipar los datos para que estos no cambien de tipo.

// Tipado de datos con TypeScript
const text: string;
const num: number;
const bool: boolean:
const arr: Array<number>[];

Safe type

let name: string;
const age = 19;
const suma = (a: number, b:number) => {
   return a + b;
}

Classes

class Person {
   constructor(private age: number, private name: string) {}

   getSummary() {
      return `I'm ${this.name} and I'm ${this.age}`;
   }
}

POO con TypeScript

Javascript permite el desarrollo de aplicaciones utilizando POO basada en Prototipos. Puedes tomar el Curso Básico de Programación Orientada a Objetos con JavaScript para entrar en más detalle.

TypeScript llega para permitir escribir código utilizando los conceptos de la POO más fácilmente con clases, herencia, polimorfismo, etc.

// Programación Orientada a Objetos con TypeScript
class Alumno {
  private nombre: string;
  private apellido: string;
  
  constructor(nombre: string, apellido: string) {
    this.nombre = nombre;
    this.apellido = apellido;
  }
  
  getNombre() {
    return this.nombre;
  }
  setNombre(nuevoNombre: string) {
    this.nombre = nuevoNombre;
  }
}
const alumno = new Alumno('Freddy', 'Vega');

Estas son las diferencias básicas que tienes que conocer entre Javascript y TypeScript. Si quieres aprender más de esta tecnología puedes tomar el Curso de Fundamentos de TypeScript.


Contribución creada por: Kevin Fiorentino.

Aportes 22

Preguntas 4

Ordenar por:

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

Safe type

let name: string;
const age = 19;
const suma = (a: number, b:number) => {
   return a + b;
}

Classes

class Person {
  constructor(private age: number, private name: string) {}
  getSummary() {
     return `I'm ${this.name} and I'm ${this.age}`;
  }
}

Si desean evitarse formatear el código manualmente, pueden hacer que se autoformatee cada vez que se guarda el archivo, para esto pueden hacer lo siguiente:

  1. Abrir configuración de VS en JSON
  • F1
  • Preferences: Open Settings (JSON)
  1. Añadir la siguiente línea, puede ser al final
"editor.formatOnSave": true
  1. Adicional, también pueden configurar Prettier globalmente para que cuando guarden Prettier tome esa configuración

Like si los errores que marca prettier te dan ansiedad ✌

Si quieren también pueden usar typescript playground para probar el código: https://www.typescriptlang.org/play

Por si requieren mas información aquí están las notas del Curso de TypeScript en Platzi, las realice en notion

Hola, Recuerden que el tipado de TypeScript solo es para el desarrollador (Tú) no se debe confiar en los datos que ingresa el cliente porque TypeScript no válida cuando compila, solo es para ayudar durante el desarrollo.

nest viene con prettier pre instalado y configurado con el archivo .prettierrc en este archivo podemos colocar opciones de configuración para que nuestro código quede con un buen formato un ejemplo podria ser el siguiente { "singleQuote": true, "trailingComma": "all", "printWidth": 60 } y ademas visual studio code se puede configurar para que aplique el formateo autormaticamente. solo basta con abrir o crear el archivo .vscode/settings.json y colocar estas opciones dentro { "editor.defaultFormatter": "esbenp.prettier-vscode", "prettier.printWidth": 60, "editor.formatOnSave": true, "prettier.requireConfig": true } } Asi cada vez que guardemos el archivo el pluggin prettier dará formato a los archivos

Me encanto esta clase. Muy bueno el curso Nicolas!

Ojitoo… me sorprende la similitud de la estructura con angular
excelente…

Buenas aqui mi aporte, en el vscode pueden user la combinacion de telcas shift + ctrol + i para auto-formatear el codigo como está especificado en los archivos de configuracion de ESlint, al ser la primera vez en usar la combinacion de teclsa les preguntará que formater user elijan el ESlint

Hola 👋
Para todos aquellos que quieran profundizar en typescript, platzi tiene un curso de fundamentos muy bueno, lo encontrara click 👉 typescript.
Espero haberles aportado algo 🚀

Yo tuve un problema donde eslint me indicaba que no podía leer el archivo tsconfig.json.

Tuve que dirigirme al archivo .eslintrc.js y buscar el apartado de parserOptions y indicarle que lo busque en el directorio de trabajo con tsconfigRootDir: __dirname

parserOptions: {
   project: 'tsconfig.json',
    tsconfigRootDir: __dirname,
    sourceType: 'module',
  }
Disculpa, pero esta clase me parece innecesaria. Para esto ya tenemos la ruta de typescript. Tuve que tomar toda la saga y ha sido muy útil en mi trabajo y en mis proyectos. Igual supongo que por algo la agregaron pero la verdad podríamos tener clases que sean más valiosas o algo más largas profundizando en conceptos importantes.

si les sigue apareciendo errores: Take a look at your .eslintrc.js file. removing ‘plugin:prettier/recommended’ from the extends array should fix the issue. (tomado de stackoverflow)

un tip adicional para el formateo de los archivos

agregamos a nuestro proyecto el paquete husky con este comando

npx husky-init && npm install

esto nos crea un archivo en .husky/pre-commit que inicialmente tiene este contenido

#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npm test

ahi podemis editar el comando que muestra y sustituirlo por

npm run format

de esta manera, en el momento que vayamos a hacer el commit al repo, antes de que se haga el commit automaticamente se ejecutará el comando format que viene en el package.json y automaticamente se formatearan todos los archivs

otra cosa adicional es que puedes definir reglas de formateo para el proyecto creando o editando el archivo .prettierrc

yo le he puesto estas reglas que me parecen de lo mejorer para no tener lineas de codigo tan largas y aj ser una configuración interna en el proyecto si trabajas con otros compañeros es bien util porque todos usan el mismo formato al trabajar y evitas problemas con los merges

{
  "singleQuote": true,
  "trailingComma": "all",
  "printWidth": 60
}

Cursos TpeScript

Les comparto algunos recursos, adicional al curso existente de TypeScript Platzi:
.

importante el uso del constructor para la inyección otras clases.

Buen repaso, mi aporte : Revisar informaciont acerca de type e interface ya que se usa mucho en el curso y esto es propio de Typescript

Para aquellas personas que tengan dudas referente a un constructor: En la programación orientada a objetos (POO), un **constructor** es una función especial diseñada para **crear e inicializar nuevos objetos** de una clase. Su principal función es asignar valores iniciales a los atributos del objeto y preparar el objeto para su uso [1](https://keepcoding.io/blog/constructores-en-programacion/).Los constructores se ejecutan automáticamente cuando se crea una nueva instancia de una clase, utilizando la palabra clave `new`. Esto significa que cada vez que se crea un objeto, el constructor correspondiente se invoca para establecer el estado inicial del objeto

Excelente repaso

Muy bn, muy bn excelente…