gpt4 book ai didi

javascript - 具有精确流类型的对象传播

转载 作者:数据小太阳 更新时间:2023-10-29 06:09:59 25 4
gpt4 key购买 nike

我似乎无法在流程中获得确切的类型来处理对象传播。

type Point = {| x: number, y: number |};
const p1: Point = { x: 10, y: 10 };
const p2: Point = { ...p1, y: 5 };

生成错误对象文字。不精确类型与精确类型不兼容

这不会产生错误,但会修改 p1:

const p3: Point = Object.assign(p1, {y: 5});

对空对象使用 Object.assign 也会产生相同的对象字面量错误:

const p4: Point = Object.assign({}, p1, {y: 5});

如果我使用 type Point = {x: number, y: number}; 那么对象展开就可以了,但理想情况下我想使用一个确切的类型。

最佳答案

是的,这是一个已知错误。我目前正在努力改进我们对对象传播的分析,以解决这个问题和其他问题。根本原因是对象传播表达式导致“未密封”,这与确切的对象类型不兼容。改进后的分析将尽可能创建密封对象。

关于javascript - 具有精确流类型的对象传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42968014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com