From 4172707346fe29b5e64d9125227dc671bc667799 Mon Sep 17 00:00:00 2001 From: Pete Bacon Darwin Date: Sun, 26 Apr 2020 18:15:43 +0100 Subject: [PATCH] refactor(compiler): tighten type of `TemplateParser._console` (#36741) This property can actually be `null` when called from the language-service. This change allows us to remove the use of `!` to subvert the type system. PR Close #36741 --- packages/compiler/src/template_parser/template_parser.ts | 4 ++-- packages/language-service/src/typescript_host.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/compiler/src/template_parser/template_parser.ts b/packages/compiler/src/template_parser/template_parser.ts index 2323b8f683..7b21dd0103 100644 --- a/packages/compiler/src/template_parser/template_parser.ts +++ b/packages/compiler/src/template_parser/template_parser.ts @@ -81,7 +81,7 @@ export class TemplateParser { constructor( private _config: CompilerConfig, private _reflector: CompileReflector, private _exprParser: Parser, private _schemaRegistry: ElementSchemaRegistry, - private _htmlParser: HtmlParser, private _console: Console, + private _htmlParser: HtmlParser, private _console: Console|null, public transforms: t.TemplateAstVisitor[]) {} public get expressionParser() { @@ -100,7 +100,7 @@ export class TemplateParser { const errors = result.errors!.filter(error => error.level === ParseErrorLevel.ERROR); if (warnings.length > 0) { - this._console.warn(`Template parse warnings:\n${warnings.join('\n')}`); + this._console?.warn(`Template parse warnings:\n${warnings.join('\n')}`); } if (errors.length > 0) { diff --git a/packages/language-service/src/typescript_host.ts b/packages/language-service/src/typescript_host.ts index 324f9d1a6b..cdf522a6e6 100644 --- a/packages/language-service/src/typescript_host.ts +++ b/packages/language-service/src/typescript_host.ts @@ -516,8 +516,8 @@ export class TypeScriptServiceHost implements LanguageServiceHost { const parser = new TemplateParser( new CompilerConfig(), this.reflector, expressionParser, new DomElementSchemaRegistry(), htmlParser, - null!, // console - [] // tranforms + null, // console + [] // tranforms ); const htmlResult = htmlParser.parse(template.source, fileName, { tokenizeExpansionForms: true,