And*_*ndy 5 javascript flowtype
我似乎无法获得与对象传播一起工作的精确类型.
type Point = {| x: number, y: number |};
const p1: Point = { x: 10, y: 10 };
const p2: Point = { ...p1, y: 5 };
Run Code Online (Sandbox Code Playgroud)
生成错误对象文字.不精确类型与确切类型不兼容
这不会产生错误,但会修改p1:
const p3: Point = Object.assign(p1, {y: 5});
Run Code Online (Sandbox Code Playgroud)
将Object.assign与空对象一起使用也会产生相同的对象文字错误:
const p4: Point = Object.assign({}, p1, {y: 5});
Run Code Online (Sandbox Code Playgroud)
如果我使用type Point = {x: number, y: number};然后对象传播工作,但理想情况下我想使用精确类型.
是的,这是一个已知的错误.我目前正致力于改进对象传播的分析,以解决这个问题和其他问题.根本原因是对象扩散表达式导致"未密封",这与精确对象类型不兼容.改进的分析将尽可能创建密封对象.
| 归档时间: |
|
| 查看次数: |
1277 次 |
| 最近记录: |