declarationMap în TypeScript

Generează hărți .d.ts.map, ca „Go to Definition” din editor să ducă la sursa .ts, nu la fișierul .d.ts.

Sintaxă
"compilerOptions": {
  "declaration": true,
  "declarationMap": true
}

Ce face declarationMap

Când folosești o bibliotecă și dai „Go to Definition” (F12) pe o funcție, editorul deschide de obicei fișierul .d.ts, unde vezi doar semnătura. Cu declarationMap, tsc scrie lângă fiecare .d.ts o hartă .d.ts.map care leagă declarațiile de rândurile din sursa .ts. Editorul sare direct în codul sursă.

Are sens când sursele .ts sunt disponibile: în monorepo-uri, cu referințe între proiecte, sau când pachetul publicat include și src/. Implicit: false. tsc --init din 5.9 o pornește.

Parametri

Parametru Descriere
true Se generează .d.ts.map lângă fiecare .d.ts.
false Valoarea implicită.

Exemple

Exemplul 1: Harta declarațiilor

Pe ultimul rând din magazin.d.ts apare legătura spre hartă, iar harta indică fișierul sursă ../src/magazin.ts.

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

Rezultat (tsc 5.9)

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

$ tail -1 dist/magazin.d.ts
//# sourceMappingURL=magazin.d.ts.map

$ cat dist/magazin.d.ts.map
{"version":3,"file":"magazin.d.ts","sourceRoot":"","sources":["../src/magazin.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,2BAA2B;AAC3B,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,UAE9B;AAED,eAAO,MAAM,MAAM,QAAQ,CAAC"}

Greșeli frecvente

  • Să publici hărțile fără sursele .ts. Harta trimite spre un fișier care nu există, iar editorul revine la .d.ts.

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.
  • sourceMap: Generează fișiere .js.map care leagă JavaScript-ul generat de rândurile din sursa .ts (pentru depanare și erori).
  • composite: Pregătește un proiect pentru a fi folosit prin „references” de alte proiecte și construit cu tsc -b.