gpt4 book ai didi

javascript - typescript |从对象 T 中提取具有类型 K 值的所有键名

转载 作者:行者123 更新时间:2023-12-04 10:07:54 24 4
gpt4 key购买 nike

我有一些接口(interface)/对象

interface Example1 {
1: object,
2: string,
s: string,
ss: string,
as: string[],
b: boolean,
n: number
}

有一种方法可以只获取具有 T 类型值的字符串类型的键吗?

预期结果:
type ExtractKeysOfValueType<T extends object,K> = ... // do the magic,
ExtractKeysOfValueType<Example1,string> // 's' | 'ss'

我已经使用“提取”来获取字符串类型的键,不包括符号和数字,但我不知道如何继续我的需要

最佳答案

 type ExtractKeysOfValueType<T, K> = { [I in keyof T]: T[I] extends K ? I : never }[keyof T];

灵感来自 this issue , try it .这基本上首先将对象映射到键键对象,并且相关值不是所需类型的键被映射到从不:
 { 1: object, s: string } -> { 1: never, s: "s" }

然后取所有值的类型,得到 never | "s" , 和 never从联合中省略,导致想要的类型。

关于javascript - typescript |从对象 T 中提取具有类型 K 值的所有键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61476748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com