我似乎无法获得与对象传播一起工作的精确类型.
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};然后对象传播工作,但理想情况下我想使用精确类型.