Если у меня есть функция, которая принимает динамический c объект в качестве параметра.
const fun = <IValues>(values: IValues) => // IValues = {a: '', b: ''}
Я хотел бы использовать этот объект и клон с такими же ключами но разные значения:
//manage values to init valuesModified1 and valuesModified2
const originalValues: IValues = valuesModified1; // {a: 'foo', b: 'bar'}
const modifiedValues = valuesModified2; // {a: true', b: false}
return {originalValues, modifiedValues}
Моя проблема в том, чтоifiedValues не имеет правильных типов.
Есть ли способ клонировать интерфейс, но изменить все значения его ключа?
РЕДАКТИРОВАТЬ: основываясь на ответе iY1NQ, я просто использовал : { [key in keyof IValues]: boolean }
, и ошибки исчезли (возможно, не самый лучший решение, но это решение):
const fun = <IValues>(values: IValues) => // IValues = {a: '', b: ''}
//manage values to init valuesModified1 and valuesModified2
const originalValues: IValues = valuesModified1; // {a: 'foo', b: 'bar'}
const modifiedValues: { [key in keyof IValues]: boolean } = valuesModified2; // {a: true', b: false}
return {originalValues, modifiedValues}
}