Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generate declaration file with single module in TypeScript

Given the following folder structure:

src/
├── foo.ts
├── bar.ts
├── baz.ts
├── index.ts

Where foo.ts, bar.ts, and baz.ts each export a default class or thing: i.e. in the case of foo.ts:

export default class Foo {
    x = 2;
}

Can we automatically generate a declaration file which declares one module my-module and exports foo.ts, bar.ts, and baz.ts as non-defaults?

I.e. I want tsc to generate the following:

build/
├── foo.js
├── bar.js
├── baz.js
├── index.js
├── index.d.ts

Where index.d.ts contains:

declare module 'my-module' {
    export class Foo {
        ...
    }
    export class Bar {
        ...
    }
    export class Baz {
        ...
    }
}

I see that mostly all NPM modules have a declaration file like this and maybe with separate files.

How would I accomplish this?

like image 597
Johan Svensson Avatar asked Oct 30 '18 08:10

Johan Svensson


1 Answers

In your tsconfig.json file, set "declaration" to true. Then when you run typescript on your project it will automatically generate declaration files for you.

like image 113
Christian Reed Avatar answered Oct 23 '22 10:10

Christian Reed