From 1dab9526c15eb13f5d7095c9e7a4cf270241b4ac Mon Sep 17 00:00:00 2001 From: bluelovers Date: Fri, 7 Jun 2019 14:43:06 +0800 Subject: [PATCH] emitDeclarationFileOrBundle: allow preserve comments in declaration --- src/compiler/commandLineParser.ts | 8 ++++++++ src/compiler/diagnosticMessages.json | 6 +++++- src/compiler/emitter.ts | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index 394a94cb663b7..5d1257d21c627 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -369,6 +369,14 @@ namespace ts { category: Diagnostics.Basic_Options, description: Diagnostics.Do_not_emit_comments_to_output, }, + { + name: "preserveDeclarationComments", + type: "boolean", + affectsEmit: true, + showInSimplifiedHelpView: true, + category: Diagnostics.Basic_Options, + description: Diagnostics.Preserve_emit_comments_to_output_in_declaration, + }, { name: "noEmit", type: "boolean", diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 5d6dc7d6df411..94b45e22a3b15 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -4109,6 +4109,10 @@ "category": "Message", "code": 6502 }, + "Preserve emit comments to output in declaration.": { + "category": "Message", + "code": 6503 + }, "Variable '{0}' implicitly has an '{1}' type.": { "category": "Error", @@ -4295,7 +4299,7 @@ "Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'.": { "category": "Error", "code": 7053 - }, + }, "No index signature with a parameter of type '{0}' was found on type '{1}'.": { "category": "Error", "code": 7054 diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index ddd273c360201..83738427092a1 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -356,7 +356,7 @@ namespace ts { } const printerOptions: PrinterOptions = { - removeComments: compilerOptions.removeComments, + removeComments: compilerOptions.removeComments && !compilerOptions.preserveDeclarationComments, newLine: compilerOptions.newLine, noEmitHelpers: true, module: compilerOptions.module,