Publicação de pacotes com tipos
Publique bibliotecas com tipagens de primeira classe: emita .d.ts com tsc, aponte package.json para elas, gerencie exportações ESM/CJS e teste antes de publicar.
Publicação de pacotes com tipos é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 2 de 2. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 2 aulas no total.
Introdução
Objetivo: publicar um pacote com tipagens sólidas. Você emitirá arquivos .d.ts, configurará package.json corretamente, oferecerá suporte a ESM/CJS por meio de exports e verificará com tsc --noEmit em um app de exemplo.
- Emitir declarações
- Indicar
types(ouexportspor entrada) - Testar antes de publicar
Emitir declarações
Ative declaration para emitir .d.ts. Use uma configuração de compilação dedicada para manter o tsconfig do app rigoroso e limpo.
// tsconfig.build.json
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"declaration": true,
"emitDeclarationOnly": false,
"outDir": "dist",
"rootDir": "src",
"stripInternal": true
},
"include": ["src/**/*"]
}Tipos e exports do package.json
Aponte types para a declaração raiz. Para exportações de subcaminhos, inclua uma entrada types para que os editores resolvam o arquivo .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"
}
}
}Código-fonte versus .d.ts
Certifique-se de que sua API pública esteja bem tipada. As declarações reproduzem as assinaturas do código-fonte, para que os consumidores obtenham preenchimento automático e verificação.
// 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
Testar no consumidor
Antes de publicar, teste em um pequeno projeto consumidor com tsc --noEmit. Espere erros corretos para usos inválidos.
// 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" }))Dicas e armadilhas
Dicas:
- Prefira
exportsde subcaminhos comtypespor entrada. - Mantenha os tipos internos não exportados ou use
@internal. - Use um script
preparepara compilar antes denpm publish.
Verificação da publicação de tipos
Verificação rápida: qual é a configuração mínima correta para expor tipos?
Recapitulação
Recapitulação: emita declarações com tsc, configure package.json (types/exports) e verifique em um app consumidor antes de publicar.
Perguntas Frequentes
A aula “Publicação de pacotes com tipos” é grátis?
Sim — o texto completo de “Publicação de pacotes com tipos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 2 aulas no total.
O que vou aprender em “Publicação de pacotes com tipos”?
Publique bibliotecas com tipagens de primeira classe: emita .d.ts com tsc, aponte package.json para elas, gerencie exportações ESM/CJS e teste antes de publicar. Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar TypeScript Academy?
Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 2.
Quanto tempo leva a aula “Publicação de pacotes com tipos”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de TypeScript Academy?
Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Fundamentos de .d.ts; export type versus export
- Publicação de pacotes com tipos