declarationDir în TypeScript

Directorul în care se scriu fișierele .d.ts, separat de outDir unde ajunge JavaScript-ul.

Sintaxă
"compilerOptions": {
  "declaration": true,
  "outDir": "dist",
  "declarationDir": "tipuri"
}

Ce face declarationDir

Implicit, fișierele .d.ts ajung lângă fișierele .js (în outDir sau lângă surse). Cu declarationDir, le trimiți într-un director separat, de exemplu tipuri/, păstrând aceeași structură de subdirectoare.

Este util când pachetul publică tipurile separat sau când un bundler produce JavaScript-ul în alt loc. Nu are valoare implicită. Necesită declaration sau composite.

Parametri

Parametru Descriere
"cale" Directorul pentru .d.ts, relativ la tsconfig.json.

Exemple

Exemplul 1: JavaScript în dist, tipuri în tipuri

Aceeași sursă src/magazin.ts; cele două fișiere generate ajung în directoare diferite.

// tsconfig.json
{
  "compilerOptions": {
    "module": "nodenext",
    "target": "es2022",
    "declaration": true,
    "outDir": "dist",
    "declarationDir": "tipuri"
  }
}

Rezultat (tsc 5.9)

$ npx tsc && find dist tipuri -type f | sort
dist/magazin.js
tipuri/magazin.d.ts

Greșeli frecvente

  • Să muți declarațiile și să uiți să actualizezi câmpul "types" din package.json.

Comenzi înrudite

  • declaration: Generează lângă fiecare fișier .js un fișier .d.ts cu tipurile lui, ca alte proiecte să-l poată folosi cu tipuri.
  • outDir: Directorul în care tsc scrie fișierele generate, cu aceeași structură de subdirectoare ca sursele.
  • rootDir: Spune care director este rădăcina surselor; structura de sub el se păstrează în outDir.