npm - Flera ingångspunkter i TypeScript externa moduler inte lösta


Jag försöker bygga en extern modul, @example/lib för TypeScript med flera ingångspunkter. Jag skulle vilja använda den ungefär så här:

import * as lib from '@example/lib';
import * as foobar from '@example/lib/foobar';

Jag kan bygga ett npm-modul som fungerar korrekt genom att sätta "target": "es5" och "declaration": true i min tsconfig, och peka mina "main" och "typings"-egenskaper i package.json till en enda källplats. Om jag gör detta kan jag alltid importera @example/lib utan problem.

Problemet uppstår när jag försöker importera @example/lib/foobar. TypeScript klagar på att det "Kan inte hitta modulen @example/lib/foobar". Den komplierade utdata kan dock importera denna undermodul utan problem (efter att ha behandlats av webpack).

Inuti mitt @example/lib-projekt har jag källfilerna:

index.js
index.d.ts
foobar.js
foobar.d.ts

Och i min package.json har jag:

{
    ...
    "typings": "index.d.ts"
    "main": "index.js"
    ...
}

Vad behöver jag göra för att hålla TypeScript nöjd (och typkontrollen!) i det här fallet?

Svar #1

Ovanstående fungerar faktiskt.

Tyvärr genererades inte d.ts-filen för foobar i mitt fall, (även om källan gjorde det, på grund av ett fel).