Publicación de paquetes con tipos
Publique bibliotecas con tipados completos: genere .d.ts con tsc, indíquelos en package.json, gestione las exportaciones ESM/CJS y pruebe antes de publicar.
Publicación de paquetes con tipos es una lección gratuita de TypeScript Academy en CoddyKit. Esta es la lección 2 de 2. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de TypeScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de TypeScript Academy incluye 2 lecciones en total.
Introducción
Objetivo: Publicar un paquete con tipados sólidos. Emitirá archivos .d.ts, configurará correctamente package.json, admitirá ESM/CJS mediante exports y lo verificará con tsc --noEmit en una aplicación de ejemplo.
- Emitir declaraciones
- Indicar
types(oexportspor entrada) - Probar antes de publicar
Emitir declaraciones
Active declaration para emitir .d.ts. Utilice una configuración de compilación específica para mantener el tsconfig de la aplicación estricto y limpio.
// tsconfig.build.json
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"declaration": true,
"emitDeclarationOnly": false,
"outDir": "dist",
"rootDir": "src",
"stripInternal": true
},
"include": ["src/**/*"]
}types/exports de package.json
Apunte types a la declaración raíz. Para exports de subrutas, incluya una entrada types para que los editores resuelvan el .d.ts de cada módulo.
// package.json
{
"name": "@acme/widgets",
"version": "1.0.0",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js",
"require": "./dist/index.cjs"
},
"./utils": {
"types": "./dist/utils.d.ts",
"import": "./dist/utils.js",
"require": "./dist/utils.cjs"
}
}
}Origen frente a .d.ts
Asegúrese de que su API pública esté bien tipada. Las declaraciones reflejan las firmas del código fuente para que los consumidores obtengan autocompletado y comprobación.
// src/index.ts
export interface Widget { id: string; name: string }
export function greet(w: Widget): string { return `Hello, ${w.name}` }
// dist/index.d.ts (emitted)
export interface Widget { id: string; name: string }
export declare function greet(w: Widget): string
Probar en el consumidor
Antes de publicar, pruebe en un proyecto consumidor pequeño con tsc --noEmit. Espere errores correctos cuando el uso no sea válido.
// consumer/tsconfig.json
{
"compilerOptions": { "strict": true, "target": "ES2020", "module": "ESNext" },
"include": ["./src"]
}
// consumer/src/app.ts
import { greet } from "@acme/widgets"
// Type checks in the consumer
console.log(greet({ id: "w1", name: "Ada" }))
// @ts-expect-error: missing name
// console.log(greet({ id: "w1" }))Consejos y dificultades
Consejos:
- Prefiera
exportsde subrutas contypespor entrada. - Mantenga los tipos internos sin exportar o márquelos con
@internal. - Utilice un script
preparepara compilar antes denpm publish.
Comprobación de publicación de tipos
Comprobación rápida: ¿Cuál es la configuración mínima correcta para exponer los tipos?
Repaso
Repaso: Emita declaraciones con tsc, configure package.json (types/exports) y verifique todo en una aplicación consumidora antes de publicar.
Preguntas frecuentes
¿La lección «Publicación de paquetes con tipos» es gratis?
Sí — el texto completo de «Publicación de paquetes con tipos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de TypeScript Academy, actualiza a CoddyKit PRO. El curso de TypeScript Academy incluye 2 lecciones en total.
¿Qué aprenderé en «Publicación de paquetes con tipos»?
Publique bibliotecas con tipados completos: genere .d.ts con tsc, indíquelos en package.json, gestione las exportaciones ESM/CJS y pruebe antes de publicar. Practicas TypeScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar TypeScript Academy?
No se requiere experiencia previa. TypeScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 2.
¿Cuánto tiempo toma la lección «Publicación de paquetes con tipos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de TypeScript Academy?
Sí. Cada lección de TypeScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Fundamentos de .d.ts; export type frente a export
- Publicación de paquetes con tipos