当使用匿名类型链接功能时,typescript例如如下所示:
let array = [{ seed: 2 }, { seed: 3 }];
array
.map(i => ({ seed: i.seed, square: i.seed * i.seed }))
.forEach(i => console.log(`square for ${i.seed} is ${i.square}`));
Run Code Online (Sandbox Code Playgroud)
我需要为地图函数定义新的匿名类型。如果我有多个步骤都生成新属性,那么我最终会编写大量定义代码来继承所有属性。我可以使用$.extend(或Object.assign),但这样我就会失去智能感知和强类型。
array
.map(i => $.extend(i, { square: i.seed * i.seed }))
.forEach(i => console.log(`square for ${i.seed} is ${i.square}`));
Run Code Online (Sandbox Code Playgroud)
如何在保持强类型的同时扩展匿名对象而不再次定义所有属性?