如果我有一个由键组成的打字稿类型:
const anObject = {value1: '1', value2: '2', value3: '3'}
type objectKeys = keyof typeof anObject
然后我希望将密钥添加到该类型,同时保留当前密钥,我该怎么做呢?
例如,如果我想将键 'get_value1'、'get_value2'、'get_value3' 添加到类型 'objectKeys'
最后,我想要一个看起来像这样的类型:
type objectKeys = keyof anObject + 'get_value1', 'get_value2', 'get_value3'
无需手动定义以“get_”为前缀的键,我知道我可以输入键来创建这个对象——但这对我的用例来说是不可行的。我只是想将一些可能存在或不存在的键添加到类型“objectKeys”中
我也知道我可以创建允许任何键值的泛型或任何类型,但是我必须知道实际的键名。允许请求对象的任何键对我没有帮助,我需要现有的键+我想添加的键。
谢谢你的帮助。
为清楚起见添加:
const anObject = {val1: '1', val2: '2'}
type objectKeys = keyof typeof anObject
Object.keys(anObject).forEach(key => {
const getAddition = `get_${key}`
anObject[getAddition] = getAddition
})
// now I don't know whats next, how do I update objectKeys to include the
// additions added in the forEach loop.
// What I really want is to not have to add the 'get' values to the object
// at all, JUST to the type. I want typechecking for the get values that
// may or may not actually exist on the object.
希望那更清楚等等。