Estructura Básica de TypeScript

La estructura básica de un programa TypeScript se puede dividir en varias partes, cada una con una función específica.

A continuación se muestran los componentes comunes de un programa TypeScript:

  • Sección de declaraciones: incluye declaraciones de tipos, declaraciones de interfaces, etc.
  • Declaración de variables: incluyelet, constyvarel uso de.
  • Declaración de funciones: incluye funciones normales y funciones de flecha.
  • Declaración de clases: se utiliza para definir clases y sus miembros.
  • Interfaces y alias de tipo: describen la estructura de los tipos.
  • Modularidad: medianteimportyexportorganizar el código.
  • Aserción de tipos: conversión forzada de tipos.
  • Genéricos: hacen que el código tenga más reutilización.
  • Comentarios: aumentan la legibilidad del código.
  • Inferencia de tipos: infiere tipos automáticamente.
  • Guardas de tipo: reducen el rango de tipos.
  • Programación asíncrona: admiteasync/await。
  • Manejo de errores: mediantetry/catchse realiza la captura de errores.

Las partes anteriores en conjunto conforman la estructura básica de un programa TypeScript, y brindan a los desarrolladores una potente verificación de tipos, estructura del código y mantenibilidad.


1. Sección de Declaraciones (Declarations)

Declaración de tipos:TypeScript es un lenguaje de tipado estático. Se puede definir el tipo de variables, funciones, clases, etc., mediante declaraciones de tipo. Las declaraciones de tipo ayudan a que el código sea más mantenible y legible.

Ejemplo

let name: string = "Alice";
let age: number = 30;

Declaración de interfaces:Se utiliza para definir la estructura de un objeto, incluyendo sus propiedades y métodos.

Ejemplo

interface Person {
    name: string;
    age: number;
}

2. Declaración de Variables (Variable Declarations)

En TypeScript, se pueden usar let, const y var para declarar variables. Se recomienda usar let y const; ya no se recomienda el uso de var.

Ejemplo

let age: number = 25;
const pi: number = 3.14;

3. Declaración de Funciones (Function Declarations)

Declaración de funciones: TypeScript permite declarar funciones con anotaciones de tipo, incluyendo los tipos de los parámetros y el tipo de retorno.

Ejemplo

function greet(name: string): string {
    return "Hello, " + name;
}

Funciones de flecha:TypeScript también admite las funciones de flecha de ES6, que utilizan una sintaxis concisa para declarar funciones.

Ejemplo

const greet = (name: string): string => "Hello, " + name;

4. Declaración de Clases (Class Declarations)

TypeScript ofrece soporte para la programación orientada a objetos, permitiendo definir clases y sus métodos y propiedades.

Ejemplo

class Person {
    name: string;
    age: number;
   
    constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
    }
   
    greet() {
    return `Hello, my name is ${this.name}`;
    }
}

5. Interfaces y Alias de Tipo (Interfaces & Type Aliases)

Interfaz (Interface): se utiliza para describir la forma de un objeto. Las interfaces pueden heredar y extenderse.

Ejemplo

interface Animal {
    name: string;
    sound: string;
    makeSound(): void;
}

Alias de tipo (Type Alias):Permite definir alias para tipos de objeto, tipos unión, tipos de intersección, etc.

Ejemplo

type ID = string | number;

6. Módulos e Importación/Exportación (Modules & Imports/Exports)

TypeScript admite la programación modular. Se pueden usar import y export para organizar el código.

Exportación:

Ejemplo

export class Person {
    constructor(public name: string) {}
}

Importación:

Ejemplo

import { Person } from './person';

7. Aserciones de Tipo (Type Assertions)

En ciertos casos, TypeScript no puede inferir el tipo exacto de una variable; el desarrollador puede utilizar aserciones de tipo para especificar el tipo de manera forzada.

Ejemplo

let value: any = "hello";
let strLength: number = (value as string).length;

8. Genéricos (Generics)

Los genéricos permiten no especificar un tipo concreto al definir funciones, interfaces o clases, sino utilizar un marcador de posición para que el usuario proporcione el tipo específico al usarlos. Los genéricos aumentan la reutilización del código y la seguridad de tipos.

Ejemplo

function identity<T>(arg: T): T {
    return arg;
}

9. Comentarios (Comments)

Los comentarios se utilizan en los programas TypeScript para explicar la función del código, las ideas, etc., y aumentan la legibilidad del código.

Comentario de una sola línea:

Ejemplo

// Este es un comentario de una sola línea

Comentario de varias líneas:

Ejemplo

/* Este es un
comentario de varias líneas */


10. Inferencia de Tipos (Type Inference)

TypeScript infiere automáticamente el tipo de una variable en ciertos casos. Por ejemplo, al declarar una variable y asignarle un valor, TypeScript infiere el tipo de dicha variable.

Ejemplo

let num = 10;  // TypeScript infiere que num es de tipo number

11. Guardas de Tipo (Type Guards)

TypeScript proporciona guardas de tipo (como typeof e instanceof) para reducir el rango de tipos de una variable en tiempo de ejecución.

Ejemplo

function isString(value: any): value is string {
    return typeof value === 'string';
}

12. Programación Asíncrona (Asynchronous Programming)

TypeScript es totalmente compatible con la programación asíncrona. Se puede utilizar la sintaxis async/await para manejar operaciones asíncronas.

Ejemplo

async function fetchData(): Promise<string> {
    const response = await fetch("https://example.com");
    const data = await response.text();
    return data;
}

13. Manejo de Errores (Error Handling)

TypeScript permite utilizar bloques try/catch para el manejo de errores, y también se pueden usar tipos para describir el tipo de error.

Ejemplo

try {
    throw new Error("Something went wrong");
} catch (error) {
    if (error instanceof Error) {
        console.error(error.message);
    }
}
Otras extensiones