Typescript 如果泛型类型必须满足某些条件,如何在函数上使用泛型类型?

Typescript 如果泛型类型必须满足某些条件,如何在函数上使用泛型类型?,typescript,Typescript,我有一个克隆对象或数组的函数,我希望它返回参数类型,但只接受对象和数组 如何做到这一点 export function clone<T>(target: T): T { return JSON.parse(JSON.stringify(target)) } // Should fail clone('asdasd') // Should pass clone({}) clone([]) 导出函数克隆(目标:T):T{ 返回JSON.parse(JSON.stringif

我有一个克隆对象或数组的函数,我希望它返回参数类型,但只接受对象和数组

如何做到这一点

export function clone<T>(target: T): T {
    return JSON.parse(JSON.stringify(target))
}

// Should fail
clone('asdasd')

// Should pass
clone({})
clone([])
导出函数克隆(目标:T):T{ 返回JSON.parse(JSON.stringify(目标)) } //应该失败 克隆('asdasd') //应该通过 克隆({}) 克隆([]))
关键字
extends
可用于提供

导出函数克隆(目标:T):T{ 返回JSON.parse(JSON.stringify(target)); } //无效的 克隆(“asdasd”); //有效的 克隆({}); 克隆([]);