Typescript: Can compiler only emit declaration file ?

Created on 30 Jan 2015  路  5Comments  路  Source: microsoft/TypeScript

Is there a way to only emit the declaration file (.d.ts) with the compiler and not the js file ?

Question

Most helpful comment

Scenario: Auto-Generate typings for a pure js project

Currently typings for js projects are manually hand maintained. A ton of typings are out of date with the actual code. Typings are kind of documentation and if they are separate from code, they will eventually get out of sync.

with --checkJs, JS lib authors get extra benefit of validating code with jsdoc typings. Being able to auto generate just .d.ts from their existing code would make life easier. This can be done as part of the build step.

Basically if declarations:true and noEmitJs:true, only declarations should still be generated

Proposal:
compilerOptions: { module: 'amd', outFile: 'build/types.d.ts', declarations: true, allowJs: true, checkJs: true, // optional noEmitJs: true, }, include: [ 'src/**.js' ]

This would just generate a single .d.ts file from the project that you can add as part of package.json. No hand maintenance.

All 5 comments

There is no supported flags that would do that, only emit all or do not emit at all (--noEmit). Consider using --outDir and picking only the .d.ts files.

I'm thinking of adding a --noEmitJs flag. Would you be willing to entertain that thought?

I'm thinking of adding a --noEmitJs flag. Would you be willing to entertain that thought?

if there is a compelling scenario.

Scenario: Auto-Generate typings for a pure js project

Currently typings for js projects are manually hand maintained. A ton of typings are out of date with the actual code. Typings are kind of documentation and if they are separate from code, they will eventually get out of sync.

with --checkJs, JS lib authors get extra benefit of validating code with jsdoc typings. Being able to auto generate just .d.ts from their existing code would make life easier. This can be done as part of the build step.

Basically if declarations:true and noEmitJs:true, only declarations should still be generated

Proposal:
compilerOptions: { module: 'amd', outFile: 'build/types.d.ts', declarations: true, allowJs: true, checkJs: true, // optional noEmitJs: true, }, include: [ 'src/**.js' ]

This would just generate a single .d.ts file from the project that you can add as part of package.json. No hand maintenance.

Useful if you only want to generate the declaration files but not compile the js. Current usage for me would be that I'm generating an Electron application. I want the d.ts files in respective directories but the js files don't need to be created because they're made during application compilation and would cause only unnecessary clutter beforehand.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

manekinekko picture manekinekko  路  3Comments

bgrieder picture bgrieder  路  3Comments

DanielRosenwasser picture DanielRosenwasser  路  3Comments

blendsdk picture blendsdk  路  3Comments

zhuravlikjb picture zhuravlikjb  路  3Comments