npm - Hur man publicerar TypeScript 2-paket med egna typdefinitioner


Jag har ett TS-projekt som publiceras till ett privat npm-register för att användas av andra interna projekt (förmodligen alla TS också). Detta projekt har en blandning av offentligt tillgängliga deklarationsfiler (node_modules/@types) och anpassade deklarationer.

Vad är det korrekta sättet att ställa in package.json och tsconfig.json så att innehållet i de anpassade d.ts-filerna är tillgängligt för andra projekt som importerar detta?

Projektet är ganska enkelt, men min nuvarande lösning publicerar endast den byggda index.js och index.d.ts till registret, så när det importeras av andra projekt klagar tsc på de saknade typerna.

Project
├── index.ts
├── typings
│   ├── moduleA.d.ts
│   └── moduleB.d.ts
├── package.json
└── ...
tsconfig.json
{
  "compilerOptions": {
    "target": "ES2016",
    "module": "commonjs",
    "lib": [
      "ES7"
    ],
    "declaration": true,
    "rootDir": "./",
    "strict": true,
    "moduleResolution": "node",
    "baseUrl": "./"
  },
  "include": [
    "index.ts",
    "typings/**/*"
  ]
}
package.json
{
  ...
  "main": "index.js",
  "publishConfig": {
    "registry": ...
  },
  "files": [
    "index.js",
    "index.d.ts"
  ],
  "dependencies": {
    ...
  },
  "devDependencies": {
    "@types/...": "1.0.0",
    ...
  },
  ...
}

Är det också bättre att ha "declaration": true och inkludera index.d.ts i listan över files (som jag redan har gjort), eller bör jag bara inkludera index.ts i listan över files?