看代码,我认为汤姆是BB扩展AA的类型,所以应该可以工作
代码错误: TS2322:无法将类型“ BB”分配给类型“ T”
interface AA {
name: string
}
interface BB extends AA{
age: number
}
const tom: BB = {
name: 'tom',
age: 20
}
function something<T extends AA>(): T {
return tom
}
如何使用
something<BB>()
获得扩展AA的值 ;或
something<CC>()
其中CC扩展了AA
答案 0 :(得分:0)
您的识别功能应如下所示:
interface AA {
name: string
}
interface BB extends AA{
age: number
}
const tom: BB = {
name: 'tom',
age: 20
}
function identity<T extends AA>(arg: T) {
return arg
}
identity(tom)
当前实现的问题是您使用的是特定类型的T
类型。