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;