簡體   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