DEV Community

Cover image for Migrando a TypeScript
Edison Sanchez
Edison Sanchez

Posted on

2

Migrando a TypeScript

Dentro de todas las pruebas de diferentes tecnologías que a diario realizo he encontrado que TypeScript es una herramienta que continúa bloqueandome de no aprenderla rápidamente. A continuación una serie de información paso a paso cómo he ido migrando mi concepto y aprendimiento de JavaScript a TypeScript.

INSTALANDO

Inicialmente la instalación del protocolo es supremamente fácil, lo único que se debe hacer ejecutar la instalación directamente desde la consola.

npm install -g typescript
Enter fullscreen mode Exit fullscreen mode

Antes de iniciar con pruebas entender que Typescript extiende a Javascript, es un JavaScript con esteroides; así que no te asustes como me pasaba a mi.

JavaScript

Tomando un ejemplo directamente en Javascript.

function greeter(person) {
    return 'Hello, ' + person;
}
var user = [0, 1, 2];
document.body.textContent = greeter(user);
Enter fullscreen mode Exit fullscreen mode

Typescript incluye fundamentalmente la definicion del Tipo (Type) de datos, por ejemplo en los argumentos.

function greeter(person: string) {
  return 'Hello, ' + person;
}

let user = [0, 1, 2];

document.body.textContent = greeter(user);
Enter fullscreen mode Exit fullscreen mode

Esto permite obtener un error en el ejemplo arriba mencionado:

error TS2345: Argument of type 'number[]' is not assignable to parameter of type 'string'.
Enter fullscreen mode Exit fullscreen mode

Esto debido a que estoy pasando un arreglo de números a un argumento previamente definido como String.

Interfaces

La creación de interfaces es una adición a nuestro codigo en Javascript:

interface Person {
  firstName: string;
  lastName: string;
}

function greeter(person: Person) {
  return 'Hello, ' + person.firstName + ' ' + person.lastName;
}

let user = { firstName: 'Jane', lastName: 'User' };

document.body.textContent = greeter(user);
Enter fullscreen mode Exit fullscreen mode

Clases

De igual manera la deficion de los tipos de atributos en las clases.

class Student {
  fullName: string;
  constructor(
    public firstName: string,
    public middleInitial: string,
    public lastName: string
  ) {
    this.fullName = firstName + ' ' + middleInitial + ' ' + lastName;
  }
}

interface Person {
  firstName: string;
  lastName: string;
}

function greeter(person: Person) {
  return 'Hello, ' + person.firstName + ' ' + person.lastName;
}

let user = new Student('Jane', 'M.', 'User');

document.body.textContent = greeter(user);
Enter fullscreen mode Exit fullscreen mode

Ahora continuare en un proximo post tratando de aplicar esto a React.

Ver código de Ejemplo en GitHub!!!

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay