@@ -102,7 +102,7 @@ export class TranslocoService implements OnDestroy {
102
102
private cache = new Map < string , Observable < Translation > > ( ) ;
103
103
private firstFallbackLang : string | undefined ;
104
104
private defaultLang = '' ;
105
- private availableLangs : AvailableLangs = [ ] ;
105
+ private availableLangs ? : AvailableLangs ;
106
106
private isResolvedMissingOnce = false ;
107
107
private lang : BehaviorSubject < string > ;
108
108
private failedLangs = new Set < string > ( ) ;
@@ -129,7 +129,7 @@ export class TranslocoService implements OnDestroy {
129
129
service = this ;
130
130
this . config = structuredClone ( userConfig ) ;
131
131
132
- this . setAvailableLangs ( this . config . availableLangs || [ ] ) ;
132
+ this . setAvailableLangs ( this . config . availableLangs ) ;
133
133
this . setFallbackLangForMissingTranslation ( this . config ) ;
134
134
this . setDefaultLang ( this . config . defaultLang ) ;
135
135
this . lang = new BehaviorSubject < string > ( this . getDefaultLang ( ) ) ;
@@ -169,7 +169,7 @@ export class TranslocoService implements OnDestroy {
169
169
return this ;
170
170
}
171
171
172
- setAvailableLangs ( langs : AvailableLangs ) {
172
+ setAvailableLangs ( langs : AvailableLangs | undefined ) {
173
173
this . availableLangs = langs ;
174
174
}
175
175
@@ -181,7 +181,7 @@ export class TranslocoService implements OnDestroy {
181
181
* depending on how the available languages are set in your module.
182
182
*/
183
183
getAvailableLangs ( ) {
184
- return this . availableLangs ;
184
+ return this . availableLangs ?? [ ] ;
185
185
}
186
186
187
187
load ( path : string , options : LoadOptions = { } ) : Observable < Translation > {
@@ -626,7 +626,11 @@ export class TranslocoService implements OnDestroy {
626
626
* @internal
627
627
*/
628
628
_isLangScoped ( lang : string ) {
629
- return this . getAvailableLangsIds ( ) . indexOf ( lang ) === - 1 ;
629
+ const availableLangsIds = this . getAvailableLangsIds ( ) ;
630
+ if ( ! availableLangsIds ) {
631
+ return true ;
632
+ }
633
+ return availableLangsIds . indexOf ( lang ) === - 1 ;
630
634
}
631
635
632
636
/**
@@ -636,7 +640,11 @@ export class TranslocoService implements OnDestroy {
636
640
* False if the given string is not an available language.
637
641
*/
638
642
isLang ( lang : string ) : boolean {
639
- return this . getAvailableLangsIds ( ) . indexOf ( lang ) !== - 1 ;
643
+ const availableLangsIds = this . getAvailableLangsIds ( ) ;
644
+ if ( ! availableLangsIds ) {
645
+ return true ;
646
+ }
647
+ return availableLangsIds . indexOf ( lang ) !== - 1 ;
640
648
}
641
649
642
650
/**
@@ -701,8 +709,12 @@ export class TranslocoService implements OnDestroy {
701
709
return size ( this . getTranslation ( lang ) ) ;
702
710
}
703
711
704
- private getAvailableLangsIds ( ) : string [ ] {
705
- const first = this . getAvailableLangs ( ) [ 0 ] ;
712
+ private getAvailableLangsIds ( ) : string [ ] | null {
713
+ const first = this . getAvailableLangs ( ) ?. [ 0 ] ;
714
+
715
+ if ( isNil ( first ) ) {
716
+ return null ;
717
+ }
706
718
707
719
if ( isString ( first ) ) {
708
720
return this . getAvailableLangs ( ) as string [ ] ;
0 commit comments