Object spread creates a new object while keeping the original value unchanged.

Object Spread Copies

spread.ts
type Task = {
    title: string;
    status: string;
    points: number;
};

const nextStatus: string = ;
const original: Task = { title: "trace lesson", status: "todo", points: 3 };
const updated: Task = { ...original, status: nextStatus };

console.log(`original=${original.status}`);
console.log(`updated=${updated.status}`);
type Task = {
    title: string;
    status: string;
    points: number;
};

const nextStatus: string = ;
const original: Task = { title: "trace lesson", status: "todo", points: 3 };
const updated: Task = { ...original, status: nextStatus };

console.log(`original=${original.status}`);
console.log(`updated=${updated.status}`);
type Task = {
    title: string;
    status: string;
    points: number;
};

const nextStatus: string = ;
const original: Task = { title: "trace lesson", status: "todo", points: 3 };
const updated: Task = { ...original, status: nextStatus };

console.log(`original=${original.status}`);
console.log(`updated=${updated.status}`);
object spread The `{ ...value, changed: next }` pattern copies existing properties, then replaces the fields listed after the spread.