Is there a way to only emit the declaration file (.d.ts) with the compiler and not the js file ?
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
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.
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:trueandnoEmitJs:true, only declarations should still be generatedProposal:
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.