単一のプロパティだけを変更しながらオブジェクトをコピーしたいとします。フローがなければ、私はこのようなオブジェクトの広がり演算子を使用してこれを行うことができます:フロー内のオブジェクトスプレッド演算子
const p1 = new Point();
const p2 = {...p1, y: 5};
私は次のエラーを取得する:
class Point { x: number = 10; y: number = 10; }
const p1 = new Point();
const p2 = {...p1, y: 5};
をしかし、私はこのようにP1およびP2に型注釈を追加するとき
11: const p2:Point = {...p1, y: 5};
^^^^^^^^^^^^^ object literal. This type is incompatible with
11: const p2:Point = {...p1, y: 5};
^^^^^ Point
フローでタイプセーフな方法でこのタイプの操作を達成するにはどうすればよいですか?一例として、
は、エルムでは、私がこれを行うことができます:
p2 = { p1 | y = 5 }
の流れで、いくつかの同等が存在する必要があります。
どのような種類の安全になるでしょうこれを行う方法は? –
申し訳ありません。私は、あなたが見せていることがクラスの代わりに型を使うことであることに気づいていませんでした。それは質問に答えます*。 –