Schlüssel eines Objektes als feste Typen

Hier am Beispiel einer Localization-Klasse

TypeScript

/**
 * Localization class to manage translations and language settings.
 */


export default class Localization {
    private static translations = {
        en: {
            right: "That's correct.",
            wrong: "Unfortunately, this is wrong.",
            next: "Next Step",
            step: "Step"
        },
        de: {
            right: "Das stimmt.",
            wrong: "Das ist leider falsch.",
            next: "Nächster Schritt",
            step: "Schritt"
        }
    } as const;

    private static currentLang: keyof typeof Localization.translations = 'de';

    public static translate(key: keyof typeof Localization.translations['de']): string {
        return Localization.translations[Localization.currentLang][key];
    }

    public static setLanguage(lang: keyof typeof Localization.translations) {
        Localization.currentLang = lang;
    }

    public static getLanguage(): string {
        return Localization.currentLang;
    }
}
TypeScript