码迷,mamicode.com
首页 > 其他好文 > 详细

个人瞎搞之 typescript获取指定位置处的参数类型

时间:2021-04-06 14:18:10      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:infer   type   ext   typeof   rgb   rgba   func   any   key   

type GetIndexType_0<T> = T extends [infer T0, ...infer TS] ? T0 : never;



type GetIndexType_1<T> = T extends [infer T0, infer T1, ...infer TS] ? T1 : never;




interface GetIndexType<T> {
    0: GetIndexType_0<T>
    1: GetIndexType_1<T>
}


type GetPar<T extends (...args: any) => any, TI extends keyof GetIndexType<any>> = T extends (...args: infer TS) => any
    ? GetIndexType<[...TS]>[TI]
    : never;


function f(n: number, s: string, re: RegExp) {

}


let n: GetPar<typeof f, 0>;

let s: GetPar<typeof f, 1>;

 

貌似typescript暂时不能跟C++一样能够进行模板循环,所以只能跟C#一样把模板手动写出来,我只写了取前两个参数的

 

个人瞎搞之 typescript获取指定位置处的参数类型

标签:infer   type   ext   typeof   rgb   rgba   func   any   key   

原文地址:https://www.cnblogs.com/leikaifeng/p/14615603.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!