export type Namespace = { [key in T]: `${TBase}${key}`; }; export function createNamespace( baseUri: TBase, localNames: T[] ): Namespace { return localNames.reduce( (obj: Namespace, localName): Namespace => ({ ...obj, [localName]: `${baseUri}${localName}` }), // eslint-disable-next-line @typescript-eslint/prefer-reduce-type-parameter {} as Namespace ); }