我正在尝试为从道具数组生成对象的函数生成类型定义,但是我遇到了问题。
问题是在{ [K in T]: boolean }
中,我无法遍历类型T。
这就是我想要做的:
const createObject = <T extends string[]>(props: T): { [K in T]: boolean } => {
return props.reduce((acc: any, prop: string) => {
acc[prop] = true
return acc
}, {})
}
谢谢
答案 0 :(得分:3)
只是一些解决方法...在这里
const createObject = <T extends string>(props: T[]): {[K in T]: boolean} => {
return props.reduce((acc: any, prop: string) => {
acc[prop] = true;
return acc;
}, {});
};
const testObj = createObject(['one', 'two']);
const one = testObj.one;
const two = testObj.two;
const three = testObj.three; // ERROR