溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

TypeScript的infer關(guān)鍵字如何使用

發(fā)布時(shí)間:2024-07-09 14:04:04 來(lái)源:億速云 閱讀:99 作者:小樊 欄目:編程語(yǔ)言

在 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)型為 numberResult 類(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)型。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI