Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Typescript |从对象中提取所有具有T类型值的键名_Javascript_Typescript_Generics_Typescript Generics - Fatal编程技术网

Javascript Typescript |从对象中提取所有具有T类型值的键名

Javascript Typescript |从对象中提取所有具有T类型值的键名,javascript,typescript,generics,typescript-generics,Javascript,Typescript,Generics,Typescript Generics,我有一些接口/对象 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 magi

我有一些接口/对象

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=…//施展魔法,
ValueType/'s'|'ss'的提取键
我已经使用“提取”来获取字符串类型的键,不包括符号和数字,但我不知道如何继续我的需求

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

然后获取所有值的类型,结果是
never |“s”
,并且从联合中省略
never
,从而生成所需的类型

“``ExtractKeysOfValueType/`s”|“ss”|“as”|“b”|“n”| 1```nope:-(啊,对了,
keyof{a:never}
并没有像我想象的那样工作,但类似的方法也可以工作:映射到键本身,然后创建一个并集。
 { 1: object, s: string } -> { 1: never, s: "s" }