Hur genererar man programmässigt en TypeScript-deklarationsfil som bara innehåller typer som används i indatafilen och dess importeringar?
Jag vill använda ChatGPT för att generera kod, men det är svårt att ge nödvändig kontext när man arbetar i stora kodbaser. Jag arbetar i Typescript och jag skulle vilja hitta ett arbetsflöde där jag snabbt kan ge relevanta typer i prompten för att ge den tillräcklig kontext.
Finns det ett programmeringsmässigt sätt att generera en Typescript-deklarationsfil som inkluderar alla typer som används i en given Typescript-fil och dess importerade moduler?
- Anta att du arbetar i ett befintligt projekt med andra filer som kanske är relevanta eller inte.
- Den resulterande filen bör använda tree shaking för att endast inkludera relevanta typer för att minimera kontext.
- Det bör generera en enda fil (lättare att ge ChatGPT i en prompt) som inkluderar typerna av filen och filens beroenden, inklusive de i
node_modules
Svar #1
Det verkar som att du letar efter https://api-extractor.com/
Det är motsvarigheten till Webpack men för typdefinitioner
Kontrollera utdataexempel på https://api-extractor.com/pages/overview/demo_rollup/
Svar #2
tsc MyFile.ts --declaration --emitDeclarationOnly --outFile out.d.tsDetta kommer att rekursivt skanna alla importeringar från MyFile.ts och alla dess importerade filer. Och skriva ut alla deklarationer i out.d.ts.
Alternativt kan du redigera tsconfig.json eller skapa en ny som endast har en fil inkluderad som "files": [ "./main.ts" ] och sedan använda kommandot
tsc -project tsconfig.alldts.json --declaration --emitDeclarationOnly --outFile all.d.tsDenna metod är bättre eftersom specifika andra inställningar inte behöver anges varje gång. (t.ex. strikthetsinställningar som påverkar hur null/undefined-typer hanteras).
(Denna metod kan också användas för att generera .js-filer som endast inkluderar main.ts eller någon annan fil i din app.)