If you want the accumulator value to be indexable by string, Record<string, string> should do the trick. You can pass this as the type argument to reduce
interface MediaQueryProps {
[key: string]: number;
}
const size: MediaQueryProps = {
small: 576,
medium: 768,
large: 992,
extra: 1200
};
export default Object.keys(size).reduce<Record<string, string>>((acc, cur) => {
acc[cur] = `(min-width: ${size[cur]}px)`;
return acc;
}, {});
Playground link