Pubblicare pacchetti con i tipi
Pubblichi librerie con tipizzazioni di prima classe: generi .d.ts con tsc, li indichi in package.json, gestisca le esportazioni ESM/CJS e testi prima della pubblicazione.
Pubblicare pacchetti con i tipi è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 2 di 2. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento TypeScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso TypeScript Academy include 2 lezioni in totale.
Introduzione
Obiettivo: pubblicare un pacchetto con una tipizzazione solida. Emetterà file .d.ts, configurerà correttamente package.json, supporterà ESM/CJS tramite exports e verificherà il risultato con tsc --noEmit in un'app di esempio.
- Emissione delle dichiarazioni
- Indicazione di
types(o diexportsper ogni entry) - Test prima della pubblicazione
Emettere le dichiarazioni
Abiliti declaration per emettere i file .d.ts. Usi una configurazione di build dedicata per mantenere rigoroso e ordinato il tsconfig dell'app.
// tsconfig.build.json
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"declaration": true,
"emitDeclarationOnly": false,
"outDir": "dist",
"rootDir": "src",
"stripInternal": true
},
"include": ["src/**/*"]
}types/exports in package.json
Imposti types sul file di dichiarazione principale. Per gli export di sottopercorsi, includa una voce types affinché gli editor risolvano il file .d.ts di ogni modulo.
// 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"
}
}
}Sorgente rispetto a .d.ts
Si assicuri che l'API pubblica sia ben tipizzata. Le dichiarazioni rispecchiano le firme della sorgente, così chi usa il pacchetto dispone del completamento automatico e dei controlli.
// 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
Testare nel progetto utilizzatore
Prima della pubblicazione, esegua i test in un piccolo progetto utilizzatore con tsc --noEmit. Verifichi che gli utilizzi non validi producano gli errori corretti.
// 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" }))Suggerimenti e insidie
Suggerimenti:
- Preferisca
exportsper i sottopercorsi contypesper ogni entry. - Mantenga i tipi interni non esportati oppure li contrassegni con
@internal. - Usi uno script
prepareper eseguire la build prima dinpm publish.
Verifica della pubblicazione dei tipi
Verifica rapida: qual è la configurazione minima corretta per esporre i tipi?
Riepilogo
Riepilogo: emetta le dichiarazioni con tsc, configuri package.json (types/exports) e verifichi il risultato in un'app utilizzatrice prima della pubblicazione.
Domande Frequenti
La lezione «Pubblicare pacchetti con i tipi» è gratuita?
Sì — il testo completo di «Pubblicare pacchetti con i tipi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso TypeScript Academy, passa a CoddyKit PRO. Il corso TypeScript Academy include 2 lezioni in totale.
Cosa imparerò in «Pubblicare pacchetti con i tipi»?
Pubblichi librerie con tipizzazioni di prima classe: generi .d.ts con tsc, li indichi in package.json, gestisca le esportazioni ESM/CJS e testi prima della pubblicazione. Eserciti TypeScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare TypeScript Academy?
Non è richiesta alcuna esperienza precedente. TypeScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 2.
Quanto tempo richiede la lezione «Pubblicare pacchetti con i tipi»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione TypeScript Academy?
Sì. Ogni lezione TypeScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Basi dei .d.ts; export type ed export
- Pubblicare pacchetti con i tipi