You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-desktop/ts/types/Util.ts

19 lines
490 B
TypeScript

export type RenderTextCallbackType = (options: {
text: string;
key: number;
isGroup: boolean;
}) => JSX.Element;
export type LocalizerType = typeof window.i18n;
/**
* Recursively get all keys of an object, including nested objects treating them as strings
*/
export type RecursiveKeys<T> = T extends object
? {
[K in Extract<keyof T, string>]:
| K
| (T[K] extends object ? `${K}.${RecursiveKeys<T[K]>}` : never);
}[Extract<keyof T, string>]
: never;