在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ Typescript: 怎樣拿到泛型函數(shù)的返回類型?

Typescript: 怎樣拿到泛型函數(shù)的返回類型?

假設(shè)我有一個(gè)接口和一個(gè)泛型函數(shù)

interface SimpleRecord<T> { prop: T }

declare function foo<T>(): SimpleRecord<T>[]

如果別人的庫沒有導(dǎo)出SimpleRecord,我又想拿到foo<T>返回值的類型,對(duì)于一般的函數(shù),可以這樣做:

type ret = ReturnType<typeof console.log>

但是對(duì)于帶了泛型的函數(shù),這樣做會(huì)出錯(cuò):

type ret<T> = ReturnType<typeof foo<T>>
// [ts] 應(yīng)為">"。

這樣又會(huì)把泛型徹底丟掉:

type ret<T> = ReturnType<typeof foo>
declare const a: ret<number>
// a: SimpleRecord<{}>[]

除非這樣:

const unused = foo<number>()
declare const a: typeof unused
// a: SimpleRecord<number>[]

但是會(huì)觸發(fā)一次函數(shù)調(diào)用,如果foo有副作用就會(huì)玩脫。

所以請(qǐng)教一下,到底怎樣才能實(shí)現(xiàn)type ret<T> = ReturnType<typeof foo<T>>?

回答
編輯回答
涼汐
declare function foo<T>():T[];

返回泛型?我覺得你問題描述有點(diǎn)混亂。
直接說你的輸入,以及預(yù)期輸出即可

2017年8月11日 16:14