Declaración export en TypeScript

Shuvayan Ghosh Dastidar 30 enero 2023
  1. Use la instrucción export en TypeScript
  2. Tipos de exportación en TypeScript
  3. Exportar todo en TypeScript
Declaración export en TypeScript

La palabra clave export en TypeScript se usa para exportar variables, constantes, clases, funciones e interfaces o escribir alias en diferentes archivos. Se vuelve muy útil para la gestión eficiente de archivos en proyectos grandes en TypeScript.

Este artículo demostrará el uso de la instrucción export en TypeScript.

Use la instrucción export en TypeScript

La sintaxis de las sentencias export comienza con la palabra clave export seguida del elemento a exportar, que se puede importar a otro archivo usando la palabra clave import.

File1.ts:

export SomeFunction() {
    // body of the function
}

File2.ts:

import { SomeFunction } from "./File1";

SomeFunction();

Lo anterior muestra la sintaxis y un ejemplo básico de cómo se puede usar la palabra clave export en TypeScript para importar y exportar un módulo.

Tipos de exportación en TypeScript

TypeScript tiene diferentes declaraciones export, una de las cuales es la exportación con nombre y la otra la exportación predeterminada. La exportación default está limitada a una exportación predeterminada por archivo, mientras que puede haber múltiples exportaciones con nombre o declaraciones de exportación normales.

Archivo1.ts:

const AddTwoNumbers = (a : number, b : number) : number  => {
    return a + b;
}

export default AddTwoNumbers;

Archivo2.ts:

import AddTwoNumbers from "./File1"
const result = AddTwoNumbers(4,5);

Por lo tanto, en el ejemplo anterior, se agregan dos números después de usar la función default export definida en File1.ts. Ahora la función se puede usar incluso con un nombre diferente.

Por ejemplo:

Archivo2.ts:

import AddNumbers from "./File1"
const result = AddNumbers(4,5);

Por lo tanto, se puede utilizar cualquier nombre en la condición default export. Sin embargo, las exportaciones predeterminadas están limitadas a solo una por archivo.

Debemos usar la exportación no predeterminada o con nombre para exportar más elementos. Los módulos exportados se importan con el mismo nombre.

Archivo1.ts:

const AddNumbers = (a : number, b : number) : number => {
    return a + b;
}

const SubtractTwoNumbers = (a : number, b : number) : number => {
    return a - b;
}

export { AddNumbers, SubtractTwoNumbers };

Archivo2.ts:

import { AddNumbers, SubtractTwoNumbers } from "./File1"
const resultAdd = AddNumbers(4,5);
const resultSub = SubtractTwoNumbers(4,5);

Lo anterior muestra el ejemplo de exportaciones e importaciones con nombre en los archivos respectivos. Deben encerrarse entre corchetes y, a diferencia de la exportación predeterminada, puede haber cualquier número de exportaciones con nombre.

Otra forma de usar las exportaciones predeterminadas en TypeScript es usar la sintaxis export =.

File1.ts:

class LengthValidator {
    check(s : string) {
        return s.length > 0;
    }
}

export = LengthValidator;

File2.ts:

import lengthChecker = require("./File1");
let validator = lengthChecker();
var testString : string = "test"
if ( validator.check(testString)) {
    console.log("Okay");
} else {
    console.log("Not working");
}

Exportar todo en TypeScript

A veces se vuelve importante exportar todos los elementos definidos en un determinado archivo. Se puede hacer a través de los operadores export y *.

Archivo1.ts:

export const AddNumbers = (a : number, b : number) : number => {
    return a + b;
}

export const SubtractTwoNumbers = (a : number, b : number) : number => {
    return a - b;
}
export * as utils from "./File1"

Archivo2.ts:

import {utils} from "./File1"
const resultAdd = utils.AddNumbers(4,5);
const resultSub = utils.SubtractTwoNumbers(4,5);

Por lo tanto, todo en File1.ts se exporta como utils y se puede importar a un archivo diferente, y se puede hacer referencia a las funciones como se muestra en el ejemplo anterior.

Shuvayan Ghosh Dastidar avatar Shuvayan Ghosh Dastidar avatar

Shuvayan is a professional software developer with an avid interest in all kinds of technology and programming languages. He loves all kinds of problem solving and writing about his experiences.

LinkedIn Website