According to the lines below, the any union is necessary.
|
export type Translation = |
|
string | |
|
Translation[] | |
|
TranslationObject | |
|
|
|
// required to prevent error "Type instantiation is excessively deep and possibly infinite." |
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any |
|
any |
However, this causes me issues, since the type of Translation is any because any overrides everything.
So I tried this in my local repo ("typescript": "^5.4.5") and I get no such recursion message.
// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
interface TranslationObject {
[key: string]: Translation;
}
type Translation = string | Translation[] | TranslationObject;
I can think of two possible causes (but there might be another reason):
- When this code was written, that restriction was in place, but it was removed in a later Typescript version.
- When this code was written, the restriction was detected, and circumvented by making
TranslationObject an interface. However the | any was not removed by accident.
Can this | any be removed?
According to the lines below, the
anyunion is necessary.core/projects/ngx-translate/src/lib/translate.service.ts
Lines 19 to 26 in ee77f16
However, this causes me issues, since the type of
Translationisanybecauseanyoverrides everything.So I tried this in my local repo (
"typescript": "^5.4.5") and I get no such recursion message.I can think of two possible causes (but there might be another reason):
TranslationObjectan interface. However the| anywas not removed by accident.Can this
| anybe removed?