Привет, я не уверен, возможно это или нет, но если это невозможно, предложите мне несколько альтернативных способов добиться этого.
Я хочу установить тип свойства объекта в интерфейсе, в котором объект может иметь любые свойства, но должен иметь свойство, названное со значением другого свойства в этом интерфейсе. Давайте рассмотрим случай
interface ListGroupProps {
data: {[x:string]:any} & {[valueProperty]:any};
valueProperty:string;
}
Теперь рассмотрим объект с допустимым типом
{
data:{id:1, textValue: "hello world"},
valueProperty: "textValue",
}
Вот объект с недопустимым типом
{
data:{id:1, textValue: "hello world"}, // someOtherPropertyName in not present here
valueProperty: "someOtherPropertyName",
}
Было бы лучше, если бы можно было обойтись без универсальных типов