From 0b0c6b20b0133d5e49dc5e4cb2d7cd7ba37a0da3 Mon Sep 17 00:00:00 2001 From: aidandownes Date: Mon, 16 Oct 2017 09:06:56 -0700 Subject: [PATCH] Update type definition for $injector.invoke to be consistent with angular documentation/code. (#19886) - $inject.invoke also accepts optional context and locals agruments when function is an array annotation format. - Also added tests. --- types/angular/angular-tests.ts | 8 +++++++- types/angular/index.d.ts | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/types/angular/angular-tests.ts b/types/angular/angular-tests.ts index c60da29504..03f7af5160 100644 --- a/types/angular/angular-tests.ts +++ b/types/angular/angular-tests.ts @@ -509,7 +509,13 @@ namespace TestInjector { } const anyFunction: Function = foobar; - const anyResult: string = $injector.invoke(anyFunction); + let anyResult: string = $injector.invoke(anyFunction); + + const inlineAnnotatedFunction: any[] = [false, foobar]; + anyResult = $injector.invoke(inlineAnnotatedFunction); + anyResult = $injector.invoke(inlineAnnotatedFunction, 'anyContext', 'anyLocals'); + anyResult = $injector.invoke(inlineAnnotatedFunction, 'anyContext'); + anyResult = $injector.invoke(inlineAnnotatedFunction, undefined, 'anyLocals'); } } diff --git a/types/angular/index.d.ts b/types/angular/index.d.ts index dc310747c6..bcc8ab7466 100644 --- a/types/angular/index.d.ts +++ b/types/angular/index.d.ts @@ -2079,7 +2079,7 @@ declare namespace angular { get(name: '$xhrFactory'): IXhrFactory; has(name: string): boolean; instantiate(typeConstructor: {new(...args: any[]): T}, locals?: any): T; - invoke(inlineAnnotatedFunction: any[]): any; + invoke(inlineAnnotatedFunction: any[], context?: any, locals?: any): any; invoke(func: (...args: any[]) => T, context?: any, locals?: any): T; invoke(func: Function, context?: any, locals?: any): any; strictDi: boolean;