diff --git a/packages/language-service/api.ts b/packages/language-service/api.ts index fce2ea8c74..603f82dbb5 100644 --- a/packages/language-service/api.ts +++ b/packages/language-service/api.ts @@ -43,3 +43,8 @@ export interface NgLanguageService extends ts.LanguageService { getTcb(fileName: string, position: number): GetTcbResponse|undefined; getComponentLocationsForTemplate(fileName: string): GetComponentLocationsForTemplateResponse; } + +export function isNgLanguageService(ls: ts.LanguageService| + NgLanguageService): ls is NgLanguageService { + return 'getTcb' in ls; +} diff --git a/packages/language-service/ivy/language_service.ts b/packages/language-service/ivy/language_service.ts index eaf6113fd0..e9defa5501 100644 --- a/packages/language-service/ivy/language_service.ts +++ b/packages/language-service/ivy/language_service.ts @@ -247,8 +247,8 @@ export class LanguageService { }); } - getTcb(fileName: string, position: number): GetTcbResponse { - return this.withCompiler(compiler => { + getTcb(fileName: string, position: number): GetTcbResponse|undefined { + return this.withCompiler(compiler => { const templateInfo = getTemplateInfoAtPosition(fileName, position, compiler); if (templateInfo === undefined) { return undefined; @@ -496,4 +496,4 @@ function findTightestNodeAtPosition(program: ts.Program, fileName: string, posit } return findTightestNode(sourceFile, position); -} \ No newline at end of file +} diff --git a/packages/language-service/ivy/ts_plugin.ts b/packages/language-service/ivy/ts_plugin.ts index 9acb7679e3..87b89c4ff5 100644 --- a/packages/language-service/ivy/ts_plugin.ts +++ b/packages/language-service/ivy/ts_plugin.ts @@ -130,7 +130,7 @@ export function create(info: ts.server.PluginCreateInfo): NgLanguageService { return diagnostics; } - function getTcb(fileName: string, position: number): GetTcbResponse { + function getTcb(fileName: string, position: number): GetTcbResponse|undefined { return ngLS.getTcb(fileName, position); }