我想用带标签的元组做类似于下面的事情,并想知道它在 TS4 中是否可行
type stringProperties<T extends {}> = {[k in keyof T]: string}
Run Code Online (Sandbox Code Playgroud)
这意味着我可以创建一个
[foo: string, bar: string, baz:string]类型[foo: boolean, bar: number, baz: any]
目前,我缺少一般捕获标签的方法(它不存在于 keyof 中),并且不确定如何将另一个 label:type 对添加到现有的元组类型。
我知道下面的技术可以添加到未标记的元组之前,但在这种情况下,标签将设置为first.
export type Prepend<E, T extends any[]> =
((first: E, ...args: T) => any) extends ((...args: infer U) => any)
? U
: never
Run Code Online (Sandbox Code Playgroud)