Эй, я пытаюсь найти способ правильно набрать функцию, , где один из параметров является свойством объекта
Допустим, у меня есть следующий объект:
type ThemeType = {
colors: {
default: string;
secondary: string;
highlight: string;
[key: string]: string;
};
sizes: {
small: number | string;
medium: number | string;
large: number | string;
};
}
Теперь я хочу, чтобы дополнительный аргумент в моей функции имел доступ к одному из свойств типа ThemeType
.
Пример использования:
getThemeValue(props, colors.secondary)
// would essentially returns props.theme.color.secondary (string value)
Я пробовал следующим образом:
interface ThemePropsType {
theme: ThemeType
}
export const getThemeValue = <ThemePropsType, K extends keyof ThemeType>
(props: ThemePropsType, themeProperty: K) => (
props.theme[themeProperty]
)
Это приводит к следующей ошибке:
Свойство 'theme' делает не существует в типе 'ThemePropsType'.
Есть идеи, что я здесь не так делаю?