Prompteo

Unidad 8 · 1 min

Módulos y proyecto

Exportar e importar, importaciones de solo tipo y cómo se sostiene un proyecto TypeScript real.

Módulos y proyecto

Un archivo con import o export en el nivel superior es un módulo. Sin ninguno de los dos, es un script: su contenido vive en el ámbito global. Para forzar que un archivo sea módulo se agrega export {};.

export const phi = 1.61;
export function absolute(num: number) {
  if (num < 0) return num * -1;
  return num;
}

import { pi, phi, absolute } from "./maths.js";
import { pi as π } from "./maths.js";
import * as math from "./maths.js";
import "./maths.js";

La exportación por defecto va con export default, y se importa sin llaves:

export default function helloWorld() {}
import helloWorld from "./hello.js";

Tipos entre archivos

Los tipos se exportan igual que los valores:

export type Cat = { breed: string; yearOfBirth: number };
export interface Dog { breeds: string[]; yearOfBirth: number }

Y se pueden importar como solo tipo:

import type { Cat, Dog } from "./animal.js";

import type importa únicamente tipos y no admite valores. Desde TypeScript 4.5 también se puede marcar cada importación por separado:

import { createCatName, type Cat, type Dog } from "./animal.js";

Esto deja claro qué desaparece al compilar y qué sobrevive en el JavaScript emitido.