From ec100987c0e7f68e012ceced0df55e541b9ef30d Mon Sep 17 00:00:00 2001 From: chivesrs Date: Tue, 11 Feb 2020 11:54:33 -0500 Subject: [PATCH] [angular-aria] Add types for $ariaProvider (#42256) * Add types for AngularJS Aria $ariaProvider. * Add another test --- types/angular-aria/angular-aria-tests.ts | 16 +++++++++++++++- types/angular-aria/index.d.ts | 13 ++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/types/angular-aria/angular-aria-tests.ts b/types/angular-aria/angular-aria-tests.ts index f9e7b4c739..3c2f26c651 100644 --- a/types/angular-aria/angular-aria-tests.ts +++ b/types/angular-aria/angular-aria-tests.ts @@ -1,4 +1,18 @@ -function testConfig($aria: angular.aria.IAriaService): void { +function testProvider($ariaProvider: angular.aria.IAriaProvider): void { + // $ExpectType void + $ariaProvider.config({ariaHidden: true}); + + // $ExpectType void + $ariaProvider.config({ariaChecked: true, ariaReadonly: false}); + + // $ExpectError + $ariaProvider.config({ariaDisabled: 44}); + + // $ExpectError + $ariaProvider.config({unknownkey: false}); +} + +function testService($aria: angular.aria.IAriaService): void { // $ExpectType boolean $aria.config('tabindex'); diff --git a/types/angular-aria/index.d.ts b/types/angular-aria/index.d.ts index 9b56bf4dde..1c4ffad621 100644 --- a/types/angular-aria/index.d.ts +++ b/types/angular-aria/index.d.ts @@ -10,8 +10,19 @@ declare module 'angular' { namespace aria { type IAriaAttribute = 'ariaHidden'|'ariaChecked'|'ariaReadonly'|'ariaDisabled'|'ariaRequired'|'ariaInvalid'|'ariaValue'|'tabindex'|'bindKeydown'|'bindRoleForClick'; + type IAriaProviderOptions = { + [key in IAriaAttribute]?: boolean; + }; + /** - * $aria service. + * $ariaProvider (https://docs.angularjs.org/api/ngAria/provider/$ariaProvider). + */ + interface IAriaProvider { + config(config: IAriaProviderOptions): void; + } + + /** + * $aria service (https://docs.angularjs.org/api/ngAria/service/$aria). */ interface IAriaService { config(attribute: IAriaAttribute): boolean;