node.js - Hvilke verdier bør jeg bruke i package.json for feltet 'types'?
Jeg er nybegynner innen feltet JS/TS, og for læringsformål lager jeg en NPM-pakke i TypeScript. Før jeg bygger og laster opp artefaktene til registeret, kompilerer jeg TS-filene til JS-filer ved hjelp av tsc-kommandoen. Følgende er min tsconfig.json:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"declaration": true,
"outDir": "./dist",
"strict": true
},
"include": ["src/"],
"exclude": [ "node_modules/", "tests/" ]
}
Etter kompilering har dist-mappen samme mappestruktur som min src-mappe, men den har alle js-filer og .d.ts-filer i stedet for ts-filer, noe som er forventet. Spørsmålet mitt er hvordan jeg kan inkludere type definitions-filene?
Når jeg googlet dette, fant jeg ut at package.json-filen har et types-felt, og til det tildeler vi banen til index.d.ts, som i mitt tilfelle ville være dist/index.d.ts. Men det er ikke den eneste filen som har typedefinisjoner. Det finnes mange andre i mange kataloger i dist-katalogen.
Hvordan inkluderer jeg alle disse typedefinisjonene i det endelige artefaktet? Jeg prøvde også å tilordne dist/**/*.d.ts til types-feltet i package.json, men det fungerte ikke.
Jeg vil også vite hva som er den riktige måten å legge til typer i en TypeScript-pakke på.
Svar #1
Et alternativ er å eksportere alle de nyttige typene på nytt i index.ts slik at de til slutt kan inkluderes i index.d.ts. Jeg tror AWS SDK gjorde det på denne måten.
For eksempel, i index.ts:
export { MyType, MyService, MyOption } fra './other-file.ts';
Så du kan bare legge inn nedenfor i package.json
"types": "dist/index.d.ts"