Files
agent-skills/skills/tsdown/references/option-dts.md
Jason Woltje f5792c40be feat: Complete fleet — 94 skills across 10+ domains
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>
2026-02-16 16:27:42 -06:00

252 lines
4.5 KiB
Markdown

# TypeScript Declaration Files
Generate `.d.ts` type declaration files for your library.
## Overview
tsdown uses [rolldown-plugin-dts](https://github.com/sxzz/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:
- `types` field, or
- `typings` field
### Manual Enable
#### CLI
```bash
tsdown --dts
```
#### Config File
```ts
export default defineConfig({
dts: true,
})
```
## Performance
### With `isolatedDeclarations` (Recommended)
**Extremely fast** - uses oxc-transform for generation.
```json
// 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
```json
{
"compilerOptions": {
"declarationMap": true
}
}
```
### Enable in tsdown Config
```ts
export default defineConfig({
dts: {
sourcemap: true,
},
})
```
## Advanced Options
### Custom Compiler Options
Override TypeScript compiler options:
```ts
export default defineConfig({
dts: {
compilerOptions: {
removeComments: false,
},
},
})
```
## Build Process
- **ESM format**: `.js` and `.d.ts` files generated in same build
- **CJS format**: Separate build process for `.d.ts` files
## Common Patterns
### Basic Library
```ts
export default defineConfig({
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: true,
})
```
Output:
- `dist/index.mjs`
- `dist/index.cjs`
- `dist/index.d.ts`
### Multiple Entry Points
```ts
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.ts`
- `dist/utils.mjs`, `dist/utils.cjs`, `dist/utils.d.ts`
### With Monorepo Support
```ts
export default defineConfig({
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: {
sourcemap: true, // Enable declaration maps
},
})
```
### Fast Build (Isolated Declarations)
```json
// tsconfig.json
{
"compilerOptions": {
"isolatedDeclarations": true,
"declaration": true,
"declarationMap": true
}
}
```
```ts
// 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:
```bash
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](https://github.com/sxzz/rolldown-plugin-dts/issues).
### Vue Support
Enable Vue component type generation (requires `vue-tsc`):
```ts
export default defineConfig({
dts: {
vue: true,
},
})
```
### Oxc Transform
Control Oxc usage for declaration generation:
```ts
export default defineConfig({
dts: {
oxc: true, // Use oxc-transform (fast, requires isolatedDeclarations)
},
})
```
### Custom TSConfig
Specify a different tsconfig for DTS generation:
```ts
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
1. **Always enable DTS** for TypeScript libraries
2. **Use isolatedDeclarations** for fast builds
3. **Enable declaration maps** in monorepos
4. **Ensure explicit types** for all exports
5. **Install TypeScript** as dev dependency
## Related Options
- [Entry](option-entry.md) - Configure entry points
- [Output Format](option-output-format.md) - Multiple output formats
- [Target](option-target.md) - JavaScript version