Я пытаюсь динамически изменять значения свойств объекта в зависимости от типа свойства, например, заменить все свойства строки объекта на «***». Я продолжаю получать Type '"***"' is not assignable to type 'T[keyof T]'
Я пытался найти правильный способ сделать это в репозитории Typescript GitHub, но безуспешно.
Я использую последнюю версию Typescript на момент написания этого «3.8.2».
Кто-нибудь знает, как правильно изменять значения свойств объекта при динамическом доступе к свойствам?
Пример:
interface IClassA {
name: string;
age: number;
}
const user: IClassA = {
name: "Jhon Doe",
age: 20
};
obfuscate(user);
export function obfuscate<T extends IClassA>(obj: T) {
for (const prop of Reflect.ownKeys(obj) as (keyof T)[]) {
if (typeof obj[prop] === "string") {
obj[prop] = "***";
}
}
}