【发布时间】:2022-12-06 22:07:01
【问题描述】:
当我写一些代码时,我遇到了一些这样的问题:
function getObjectKeys<T extends object>(object: T) {
return Object.keys(object) as (keyof T)[]
}
const props = {
propA: 100,
propB: 'text'
}
const store = { ...props }
getObjectKeys(props).forEach((key) => {
store[key] = props[key]
})
报告了一些错误:
const store: {
propA: number;
propB: string;
}
Type 'string | number' is not assignable to type 'never'.
Type 'string' is not assignable to type 'never'.
当我这样写时:
getObjectKeys(props).forEach((key) => {
if (key === 'propA') {
store[key] = props[key]
} else if (key === 'propB'){
store[key] = props[key]
} else {
store[key] = props[key]
}
})
它可以工作但不是很好。如何解决?
【问题讨论】:
标签: typescript typescript-generics typescript-eslint