Typed translation keys
If you want your keys to be typed with TypeScript you can do so with the following tolgee.d.ts file:
// tolgee.d.ts
import type en from './i18n/en.json';
declare module '@tolgee/core/lib/types' {
  type TranslationsType = typeof en;
  // ensures that nested keys are accessible with "."
  type DotNotationEntries<T> = T extends object
    ? {
        [K in keyof T]: `${K & string}${T[K] extends undefined
          ? ''
          : T[K] extends object
          ? `.${DotNotationEntries<T[K]>}`
          : ''}`;
      }[keyof T]
    : '';
  // enables both intellisense and new keys without an error
  type LiteralUnion<LiteralType extends BaseType, BaseType extends Primitive> =
    | LiteralType
    | (BaseType & { _?: never });
  export type TranslationKey = LiteralUnion<
    DotNotationEntries<TranslationsType>,
    string
  >;
}
This setup will give you TypeScript intellisense for existing keys but also allow you to add non-existing keys. If you intentionally want TypeScript errors for non-existing keys, just remove LiteralUnion.