繁体   English   中英

在 typescript 中,如何使用泛型来约束和描述函数的返回值类型?

[英]In typescript, How to use a generic to constraint and describe return value type of function?

看代码,我认为汤姆是 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

您的标识 function 应如下所示:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM