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
工作正常,您看到更好的了吗?谢谢您的帮助,