【发布时间】:2020-10-04 20:04:06
【问题描述】:
我想用标记的元组做类似于下面的事情,并想知道这在 TS4 中是否可行
type stringProperties<T extends {}> = {[k in keyof T]: string}
这意味着我可以创建一个类型
[foo: string, bar: string, baz:string]来自[foo: boolean, bar: number, baz: any]
目前我缺少一般捕获标签的方法(它不存在于 keyof 中)并且不确定如何将另一个标签:类型对添加到现有的元组类型。
我知道下面的技术可以添加到未标记的元组,但在这种情况下,标签将设置为 first。
export type Prepend<E, T extends any[]> =
((first: E, ...args: T) => any) extends ((...args: infer U) => any)
? U
: never
【问题讨论】:
-
您是否尝试创建一种类型,将类型的属性转换为元组类型,以便每个元组元素对应一个属性并由该属性的键标记,还是您想要相反?
标签: typescript type-level-computation typescript4.0