From 829b8ae1342d1a22995d151d55b7b0fd25cea3b1 Mon Sep 17 00:00:00 2001 From: "Ding, Yijun" Date: Mon, 6 May 2024 16:07:31 +0200 Subject: [PATCH] fix return types for i18next.t --- libs/angular-i18next/src/lib/ITranslationService.ts | 12 ++++++------ .../src/tests/service/I18NextService.spec.ts | 8 ++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/libs/angular-i18next/src/lib/ITranslationService.ts b/libs/angular-i18next/src/lib/ITranslationService.ts index ec70ef5..82936e0 100644 --- a/libs/angular-i18next/src/lib/ITranslationService.ts +++ b/libs/angular-i18next/src/lib/ITranslationService.ts @@ -26,15 +26,15 @@ export type ITranslationService = Modify, { init(options: i18n.InitOptions): Promise; - t( + t( key: string | string[], - options?: ITranslationOptions, - ): i18n.TFunctionReturn; - t( + options?: Options, + ): i18n.TFunctionReturn; + t( key: string | string[], defaultValue: string, - options?: ITranslationOptions - ): i18n.TFunctionReturn; + options?: Options + ): i18n.TFunctionReturn; format: i18n.FormatFunction; diff --git a/libs/angular-i18next/src/tests/service/I18NextService.spec.ts b/libs/angular-i18next/src/tests/service/I18NextService.spec.ts index cc1ad77..09eb55b 100644 --- a/libs/angular-i18next/src/tests/service/I18NextService.spec.ts +++ b/libs/angular-i18next/src/tests/service/I18NextService.spec.ts @@ -76,6 +76,14 @@ describe('I18nService', () => { }); }); + it('should be able to return different types while setting returnObjects: true (no typechecking errors)', () => { + const service: ITranslationService = TestBed.inject(I18NEXT_SERVICE); + service.t('some.string') as string; + service.t('some.string', { + returnObjects: true + }) as string[]; + }); + /* // does not work because language=cimode ignores default value // setting language to anything other than 'cimode' breaks the rest of the tests