小编Ric*_*son的帖子

标记元组的类型级别操作

我想用带标签的元组做类似于下面的事情,并想知道它在 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)

type-level-computation typescript typescript4.0

5
推荐指数
1
解决办法
617
查看次数