Pulled ALL skills from 15 source repositories: - anthropics/skills: 16 (docs, design, MCP, testing) - obra/superpowers: 14 (TDD, debugging, agents, planning) - coreyhaines31/marketingskills: 25 (marketing, CRO, SEO, growth) - better-auth/skills: 5 (auth patterns) - vercel-labs/agent-skills: 5 (React, design, Vercel) - antfu/skills: 16 (Vue, Vite, Vitest, pnpm, Turborepo) - Plus 13 individual skills from various repos Mosaic Stack is not limited to coding — the Orchestrator and subagents serve coding, business, design, marketing, writing, logistics, analysis, and more. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4.5 KiB
TypeScript Declaration Files
Generate .d.ts type declaration files for your library.
Overview
tsdown uses rolldown-plugin-dts to generate and bundle TypeScript declaration files.
Requirements:
- TypeScript must be installed in your project
Enabling DTS Generation
Auto-Enabled
DTS generation is automatically enabled if package.json contains:
typesfield, ortypingsfield
Manual Enable
CLI
tsdown --dts
Config File
export default defineConfig({
dts: true,
})
Performance
With isolatedDeclarations (Recommended)
Extremely fast - uses oxc-transform for generation.
// tsconfig.json
{
"compilerOptions": {
"isolatedDeclarations": true
}
}
Without isolatedDeclarations
Falls back to TypeScript compiler. Reliable but slower.
Declaration Maps
Map .d.ts files back to original .ts sources (useful for monorepos).
Enable in tsconfig.json
{
"compilerOptions": {
"declarationMap": true
}
}
Enable in tsdown Config
export default defineConfig({
dts: {
sourcemap: true,
},
})
Advanced Options
Custom Compiler Options
Override TypeScript compiler options:
export default defineConfig({
dts: {
compilerOptions: {
removeComments: false,
},
},
})
Build Process
- ESM format:
.jsand.d.tsfiles generated in same build - CJS format: Separate build process for
.d.tsfiles
Common Patterns
Basic Library
export default defineConfig({
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: true,
})
Output:
dist/index.mjsdist/index.cjsdist/index.d.ts
Multiple Entry Points
export default defineConfig({
entry: {
index: 'src/index.ts',
utils: 'src/utils.ts',
},
format: ['esm', 'cjs'],
dts: true,
})
Output:
dist/index.mjs,dist/index.cjs,dist/index.d.tsdist/utils.mjs,dist/utils.cjs,dist/utils.d.ts
With Monorepo Support
export default defineConfig({
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: {
sourcemap: true, // Enable declaration maps
},
})
Fast Build (Isolated Declarations)
// tsconfig.json
{
"compilerOptions": {
"isolatedDeclarations": true,
"declaration": true,
"declarationMap": true
}
}
// tsdown.config.ts
export default defineConfig({
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: true, // Will use fast oxc-transform
})
Troubleshooting
Missing Types
Ensure TypeScript is installed:
pnpm add -D typescript
Slow Generation
Enable isolatedDeclarations in tsconfig.json for faster builds.
Declaration Errors
Check that all exports have explicit types (required for isolatedDeclarations).
Report Issues
For DTS-specific issues, report to rolldown-plugin-dts.
Vue Support
Enable Vue component type generation (requires vue-tsc):
export default defineConfig({
dts: {
vue: true,
},
})
Oxc Transform
Control Oxc usage for declaration generation:
export default defineConfig({
dts: {
oxc: true, // Use oxc-transform (fast, requires isolatedDeclarations)
},
})
Custom TSConfig
Specify a different tsconfig for DTS generation:
export default defineConfig({
dts: {
tsconfig: './tsconfig.build.json',
},
})
Available DTS Options
| Option | Type | Description |
|---|---|---|
sourcemap |
boolean |
Generate declaration source maps |
compilerOptions |
object |
Override TypeScript compiler options |
vue |
boolean |
Enable Vue type generation (requires vue-tsc) |
oxc |
boolean |
Use oxc-transform for fast generation |
tsconfig |
string |
Path to tsconfig file |
resolver |
'oxc' | 'tsc' |
Module resolver: 'oxc' (default, fast) or 'tsc' (more compatible) |
cjsDefault |
boolean |
CJS default export handling |
sideEffects |
boolean |
Preserve side effects in declarations |
Tips
- Always enable DTS for TypeScript libraries
- Use isolatedDeclarations for fast builds
- Enable declaration maps in monorepos
- Ensure explicit types for all exports
- Install TypeScript as dev dependency
Related Options
- Entry - Configure entry points
- Output Format - Multiple output formats
- Target - JavaScript version