Skip to content

Do not union any in Translation #1534

Open
@Ghostbird

Description

@Ghostbird

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions