【发布时间】:2019-07-23 02:20:32
【问题描述】:
我想用打字稿实现深度克隆对象。但是存在一个我无法处理的错误。
export function cloneDeep <T>(obj: T): T {
if (!obj || typeof obj !== 'object') {
return obj
}
const result: any = isArray(obj) ? [] : {}
return Object.keys(obj).forEach((key: keyof T) => {
if (obj[key] && typeof obj[key] === 'object') {
result[key] = cloneDeep(obj[key])
} else {
result[key] = obj[key]
}
})
}
错误信息
TS2345:'(key: keyof T) => void' 类型的参数不可分配给 '(value: string, index: number, array: string[]) => 类型的参数 空白'。 参数“key”和“value”的类型不兼容。 类型 'string' 不可分配给类型 'keyof T'。
【问题讨论】:
标签: typescript