您好,登錄后才能下訂單哦!
在 TypeScript 中,infer
關(guān)鍵字通常用于推斷類(lèi)型變量。它通常在條件類(lèi)型和泛型中使用。
下面是一個(gè)示例,演示了如何在泛型中使用 infer
:
type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
function add(a: number, b: number): number {
return a + b;
}
type Result = ReturnType<typeof add>; // Result 類(lèi)型為 number
在上面的示例中,ReturnType
泛型類(lèi)型接受一個(gè)函數(shù)類(lèi)型,并使用 infer
關(guān)鍵字推斷其返回類(lèi)型。然后我們將 add
函數(shù)的類(lèi)型傳遞給 ReturnType
泛型類(lèi)型,從而得到了返回類(lèi)型為 number
的 Result
類(lèi)型。
infer
關(guān)鍵字還可以在條件類(lèi)型中使用,以便根據(jù)條件推斷出不同的類(lèi)型。下面是一個(gè)示例:
type IsString<T> = T extends string ? true : false;
type Result1 = IsString<string>; // Result1 類(lèi)型為 true
type Result2 = IsString<number>; // Result2 類(lèi)型為 false
在上面的示例中,IsString
條件類(lèi)型接受一個(gè)類(lèi)型參數(shù),并根據(jù)這個(gè)類(lèi)型參數(shù)是否為 string
推斷出不同的類(lèi)型。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。