Правильно ли будет использовать generic type для сокращения описания типов?
Есть объект с описанием цветов для styled-components. Его нужно типизировать. Какой из вариантов по вашему мнению более корректный и читабельный?
export type PageColorTypes = {
header: {
background: string;
shadow: string;
mainInfo: {
color: string;
something: {
color: string;
date: string;
};
};
body: {
color: string;
link: string;
something: {
color: string;
};
};
};
};
или же
export type PageColorTypes<T = string> = {
header: {
background: T;
shadow: T;
mainInfo: {
color: T;
something: {
color: T;
date: T;
};
};
body: {
color: T;
link: T;
something: {
color: T;
};
};
};
};
Полей в объекте может быть больше или меньше, суть generic type здесь скорее для сокращения описания полей. Они всегда будут одним типом.
Такая типизация нужна для цветов светлой/темной темы в styled-components.
Если у вас есть свои варианты, предлагайте, очень интересно мнение со стороны =)