TypeScript如何为数组类型的元素添加/移除属性?
解决方案:修改数组元素的属性
1. 给数组元素添加额外属性
你定义的myArray本质是元素为{first: string; second: string}的数组类型,要给数组里的每个对象加third属性,得先提取数组的元素类型,再扩展它,最后重新构建数组类型:
type myArray = Array<{first: string; second: string}>; interface MyInterface { // 提取myArray的元素类型,合并third属性后再组成数组 arrayWithAdditionalProp: Array<myArray[number] & {third: string}>; }
也可以用类型别名简化重复逻辑:
type myArrayElement = myArray[number]; type myArrayWithThird = Array<myArrayElement & {third: string}>; interface MyInterface { arrayWithAdditionalProp: myArrayWithThird; }
2. 移除数组元素的属性
要移除元素的某个属性,可以用TypeScript的Omit工具类型,同样先提取元素类型,再移除指定属性,最后构建数组:
比如移除second属性:
type myArrayWithoutSecond = Array<Omit<myArray[number], 'second'>>; interface MyInterface { arrayWithoutSecondProp: myArrayWithoutSecond; }
如果需要移除多个属性,把属性名放在联合类型里即可:
type myArrayWithoutFirstAndSecond = Array<Omit<myArray[number], 'first' | 'second'>>;
内容的提问来源于stack exchange,提问作者sir-haver
相关产品推荐
相关产品推荐

