覆盖Object.entries()的类型会导致意外错误
我Object.entries像这样覆盖:
interface ObjectConstructor {
entries<T extends Record<string, any>>(o: T): {
[K in keyof T]: [K, T[K]];
}[keyof T][];
}
它通常工作正常。但是,在某些情况下,我得到:
Type '["alignContent", AlignContent | undefined] | ["alignItems", AlignItems | undefined] | ["alignSelf", AlignSelf | undefined] | ... 781 more ... | undefined' must have a '[Symbol.iterator]()' method that returns an iterator.
联合中的最后一个类型是undefined,使我无法像这样解构:
const style: Partial<React.CSSProperties> = {
height: '123px',
};
for (const [k, v] of Object.entries(style)) {
...
}
根据类型定义,它永远不应该 return undefined。为什么它回来了undefined?我想省略undefined.