Older/ReSharper20171Web/LanguageFeatures/ObjectSpread.ts (5 lines of code) (raw):

// Object spread var obj = { x: 1, y: "string" }; var newObj = { ...obj, z: 3, y: 4 }; // { x: number, y: number, z: number } // Code completion on newObj. will give newObj.x, newObj.y, newObj.z //newObj. // Object rest var foo = { x: "a", y: 5, z: 23 }; var { x, ...moo } = foo; // Code completion on moo. will give moo.y, moo.z, but no moo.x //moo.