我们使用一个 API,该 API 要求我们发送一个对象以及附加属性,以告诉它该对象上的哪些属性需要通过添加_X
和设置为来修改true
。例如,如果我们有这个对象
{ firstName: 'Joe', lastName: 'Smith' }
并且只想更改lastName
属性,我们将发送此内容:
{firstName: 'Joe', lastName: 'Smith', lastName_X: true }
我想在 TypeScript 中为此设置强类型,但我似乎遗漏了一些东西
type ApiBoolean<T extends object> = {
[index: `${K in keyof T}_X`]: true; // <== Error is here
};
function convertForApi<T extends object>(obj: T, keys: Array<keyof T>): ApiBoolean<T> {
const returnObj: ApiBoolean<T> = {...obj}
for(let k of keys){
returnObj[`${k}_X`] = true;
}
return returnObj;
}
const person = {
firstName: 'Joe',
lastName: 'Smith',
age: 35
};
const converted = convertForApi(person, ['lastName', 'age'])
我需要允许索引器具有属性后缀。我做错了什么?如何实现?