Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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 TS:如何从接口提取键并创建类型联合_Javascript_Typescript - Fatal编程技术网

Javascript TS:如何从接口提取键并创建类型联合

Javascript TS:如何从接口提取键并创建类型联合,javascript,typescript,Javascript,Typescript,我为这个糟糕的标题感到抱歉,我不知道如何描述这种情况,也许这就是为什么我仍然没有找到解决办法 我有一个接口 interface Fields { name: string age: number } 例如,我想提取键来创建一个类型 type FieldList = ? // expected result // type FieldList = 'name' | 'age' 还有一次,我想使用提取的类型来创建一个数组 const list: FieldList = ['name',

我为这个糟糕的标题感到抱歉,我不知道如何描述这种情况,也许这就是为什么我仍然没有找到解决办法

我有一个接口

interface Fields {
  name: string
  age: number
}
例如,我想提取键来创建一个类型

type FieldList = ?

// expected result
// type FieldList = 'name' | 'age'
还有一次,我想使用提取的类型来创建一个数组

const list: FieldList = ['name', 'age']
我看到两个问题(或者三个)

如何获取类型的密钥?
type FieldList=keyof字段;
FieldList
现在是一个字符串文字联合–
'name'|'age'

如何获取包含类型键的数组? 这是不可能的——您不能将类型“具体化”为值

如何获取只能包含其他类型键的数组类型? 这只是
字段列表[]

const list:FieldList[]=['name','age'];//好啊
常量badList:FieldList[]=['address'];//错误

这是否回答了您的问题?您需要来自另一个接口的联合类型
type FieldsKeys=keyof Fields
type FieldList=FieldsKeys[]
Check@pilchard不,这不是我需要的。它的信息与您接受的答案完全相同。第三个答案是我需要的,
获取一个数组类型,该数组类型只能包含另一种类型的键
,但有没有办法在一行中定义它?因为这是一个函数参数,你说的一行是什么意思?从这个例子中,我了解到您可以调用
removeErrors(['age','name'])
Array
工作正常,您看到更好的了吗?谢谢您的帮助,