【问题标题】:How to get keys of type union in TypeScript如何在 TypeScript 中获取 union 类型的键
【发布时间】:2022-11-10 18:55:33
【问题描述】:

我正在研究像下面这样的结构,因为我想动态访问类型。

type userType = {
    userId: number
    name: string
}

type postType = {
    postId: number,
    title: string
}

type entityTypes = {
    user: userType,
    post: postType
}

我想分离工会实体类型键。所以像这样:

("userId" | "name)[] | ("postID" | "title")[]

但不是这个:

("userId" | "name" | "postID" | "title")[]

我正在尝试如下,但它永远不会返回。

type entityFieldsArray = keyof prismaIncludes_t[keyof prismaIncludes_t] //never

然后我找到了以下解决方案

type KeysOfUnion<T> = T extends T ? keyof T: never;
type AvailableKeys = KeysOfUnion<a>[]; 

但是这个回报: ("userId" | "name" | "postID" | "title")[]。 所以不是分开的。

我怎样才能得到与父母分开的钥匙? 希望我解释清楚?

【问题讨论】:

    标签: typescript


    【解决方案1】:

    很近;您需要将 keyof T 包装在数组中,而不是整个结果:

    type KeysOfUnion<T> = T extends T ? (keyof T)[]: never;
    type AvailableKeys = KeysOfUnion<a>;
    

    【讨论】:

      猜你喜欢
      • 2019-11-30
      • 2022-09-30
      • 2021-08-06
      • 2020-09-11
      • 2018-12-08
      • 2019-06-28
      相关资源
      最近更新 更多