簡體   English   中英

Typescript 使用可選通用

[英]Typescript use optional generic

我有以下 function:

function prop<T extends Record<any, any>, K extends keyof T>(key: K): T[K] {
   
}

const v = prop<{ test: string }>('test')

問題是我必須通過第二個泛型才能正確推斷出密鑰。 有沒有辦法跳過第二個泛型並仍然將key推斷為keyof T

我不想做以下事情:

prop<{ test: string }, 'test'>('test')

您可以嘗試使用像這樣的默認泛型:

function prop<T extends Record<any, any>, K = keyof T>(key: K): T[K] {
   
}

const v1 = prop<{ test: string }>('test') // OK
const v2 = prop<{ test: string }>('test12') // ERROR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM