【发布时间】:2021-06-16 11:04:45
【问题描述】:
我这样覆盖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)) {
...
}
根据类型定义,它永远不应该返回undefined。为什么返回undefined?我想省略undefined 是安全的。
【问题讨论】:
-
请列出引发错误的案例
-
我需要
style的样本数据。 -
添加示例
-
这绝对适用于 typescript 4.1.2。因此,要么您使用有问题的不同版本,要么您的价值观更可能与您混淆。
-
我有
4.3.2,可能是一个新的变化。这是类型错误,而不是值错误。
标签: javascript typescript