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.