是否可以从TypeScript通用扩展名或数组类型中选择Either类型?

时间:2018-12-16 07:34:42

标签: typescript generics

我有一个带有其他类型的参数的函数:

function a<T extends any[]>(...opts: T){
}

我需要这样声明函数的返回类型:

a(100, "Hello") => number | string;

另一个数组示例:

type B<T extends any[]> = `one of type of element T`

我知道具有多个泛型的非通用方式:

type B<T1, T2, T3> = T1 | T2 | T3;

但是,也许有一些通用的方法?有可能吗?

P.S。关于&操作的相同问题。

1 个答案:

答案 0 :(得分:1)

您可以使用类型查询来获取数组元素的项:

function a<T extends any[]>(...opts: T): T[number]{
    return opts[0]
}
a(100, "Hello") // => number | string;