TS遍历对象,对key进行判断
在TypeScript中,你可以使用keyof
关键字来遍历对象的键,并使用类型守卫进行条件判断。以下是一个示例代码,它定义了一个对象,并遍历其键,对每个键进行条件判断:
type MyObject = {
a: number;
b: string;
c: boolean;
};
function traverseObject<T>(obj: T) {
type Key = keyof T;
Object.keys(obj).forEach((key: Key) => {
if (typeof obj[key] === 'string') {
console.log(`Key "${key}" is a string with value: ${obj[key]}`);
} else if (typeof obj[key] === 'number') {
console.log(`Key "${key}" is a number with value: ${obj[key]}`);
} else if (typeof obj[key] === 'boolean') {
console.log(`Key "${key}" is a boolean with value: ${obj[key]}`);
} else {
console.log(`Key "${key}" is of type ${typeof obj[key]}`);
}
});
}
const myObj = { a: 1, b: 'hello', c: true } as MyObject;
traverseObject(myObj);
在这个例子中,traverseObject
函数接受一个泛型参数T
,它是一个对象类型。keyof T
会得到T
所有键的联合类型,然后遍历对象的所有键。对于每个键,我们使用typeof
来检查它的值类型,并根据类型执行不同的操作。
评论已关闭