import/export Módulos e exportações (interoperabilidade CommonJS)
Última atualização: 2026-10-23
import/export Módulos e exportações (interoperabilidade CommonJS)
ES Modules é o padrão oficial de módulos do JavaScript. O TypeScript reutiliza a sintaxe export/import e traz os tipos para dentro do sistema de módulos: tipos podem ser exportados e importados, e import type importa apenas tipos — totalmente apagado após a compilação. Um arquivo barrel (geralmente index.ts) reexporta vários módulos para que os consumidores precisem de um único ponto de entrada. A interoperabilidade com CommonJS é regida por opções do compilador como module e esModuleInterop.
| Grupo | Configuração e Prática |
|---|---|
| Tipo | Sintaxe |
| Modo strict | Não necessário |
ℹ️ Info O editor transpila TypeScript para JavaScript e o executa (sem verificação de tipos); veja a Saída de cada exemplo para o resultado da verificação.
📝 Sintaxe
// Exportando
export interface User { id: number; name: string } // exporta um tipo
export const add = (a: number, b: number) => a + b; // exporta um valor
export default function greet() {} // exportação padrão
// Importando
import greet, { add } from "./math"; // padrão + nomeada
import type { User } from "./types"; // apenas tipos, apagado após compilar
export * from "./math"; // reexportação em barrel
⚙️ Parâmetros
| export default | A exportação padrão do módulo, no máximo uma por módulo; importe com qualquer nome e sem chaves |
|---|---|
| export * from / re-export | O núcleo dos arquivos barrel: encaminha todas as exportações nomeadas de um submódulo; exportações apenas de tipo também são encaminhadas |
| import type / inline type | import type { User } e o modificador embutido import { type User } declaram uma importação apenas de tipo — nenhum código em tempo de execução é emitido |
Retorno:Módulos não retornam nada; os valores e tipos exportados formam em conjunto a interface pública do módulo para outros módulos importarem.
▶ Exemplo
Edite o código abaixo e clique em Testar para ver o resultado transpilado:
Saída:
Hello, Ada!
add === add2: true
(Saída de execução após a transpilação; este editor roda como um script inline no navegador e não consegue importar de outros arquivos de verdade, então o código acima marca os limites dos módulos em comentários e mostra uma forma equivalente executável — em um projeto real continuam sendo quatro arquivos separados, types.ts / math.ts / utils.ts / main.ts, User é um tipo puro e import type não deixa rastro após a compilação)