flowtype - 流返回错误的类型
问题描述
我有这段代码:
/* @flow */
import { List } from 'immutable';
type NotMapped = {|
first: Array<number>,
second: number,
|};
type Mapped = {|
first: List<number>,
second: number,
|};
const notMapped: NotMapped = {
first: [1, 2, 3],
second: 10,
};
const map = () => {
const first = List(notMapped.first);
return { ...notMapped, first };
}
const result: Mapped = map();
我希望结果是Mapped
类型,但我得到:
{|
first: List<number> | Array<number>,
second: number
|}
Array<number>
当我明确设置为时,该流程怎么会认为它可能first
是List(notMapped.first)
?它仅在我设置时才有效return { second: notMapped.second, first };
,但这不是解决方案,因为我有大量数据并且我无法设置每个项目。我已经检查过了,这是众所周知的问题,但是在传播类型时,不是分配类型的对象。有什么解决方案吗?