export function pick<T, K extends keyof T>(obj: T, keys: K[]): Pick<T, K> {
const result: Record<K, T[K]> = {} as Record<K, T[K]>;
for (const key of keys) {
if (key in obj) {
result[key] = obj[key]; // 确保 `key` 存在于 `obj` 中
} else {
throw new Error(`Key ${key} not found in object`);
}
}
return result as Pick<T, K>;
}
这个函数是通义千问生成的,但是一直有错误提示“不能将类型“T”分配给类型“object”。”生成typescript 的代码经常会出现问题,而且修复了还没用
TypeScript的类型不对吧。
试下下面这个
export function pick(obj: T, keys: K[]): Pick {
const result: Record = {} as Record;
for (const key of keys) {
if (key in obj) {
result[key] = obj[key]; // 确保key
存在于obj
中
} else {
throw new Error(Key ${key} not found in object
);
}
}
return result as Pick;
}
参考文档https://ts.nodejs.cn/docs/handbook/2/everyday-types.html
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。