type BuildObject<T extends Record<string, unknown>> = {
[K in keyof T]: T[K] extends string? 'default string' : T[K] extends number? 0 : never;
};
function buildObject<T extends Record<string, unknown>>(type: T): BuildObject<T> {
const result = {} as BuildObject<T>;
for (const key in type) {
if (Object.prototype.hasOwnProperty.call(type, key)) {
if (typeof type[key] ==='string') {
result[key as keyof BuildObject<T>] = 'default string' as any;
} else if (typeof type[key] === 'number') {
result[key as keyof BuildObject<T>] = 0 as any;
}
}
}
return result;
}