[英]Typescript change object property values dynamically error
我正在尝试根据属性类型动态更改对象属性值,例如,将所有对象字符串属性替换为“***”。 我不断收到Type '"***"' is not assignable to type 'T[keyof T]'
我试过在 Typescript GitHub 存储库中找到正确的方法,但没有运气。
在编写此“3.8.2”时,我正在使用最新版本的 Typescript。
任何人都知道动态访问属性时更改对象属性值的正确方法是什么?
例子:
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] = "***";
}
}
}
我不知道为什么要这样做,但最简单的(肮脏的)hack 是将您的文本转换为 any :
if (typeof obj[prop] === "string") {
obj[prop] = ("***" as any);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.