0Pricing
TypeScript Academy · Aula

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 (ou exports por 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 exports de subcaminhos com types por entrada.
  • Mantenha os tipos internos não exportados ou use @internal.
  • Use um script prepare para compilar antes de npm 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

  1. Fundamentos de .d.ts; export type versus export
  2. Publicação de pacotes com tipos
← Voltar para TypeScript Academy