我坚持制作一种应该遵循以下准则的方法:
sumMass( items: Payload[] ): 数字 使用每个项目的 massKg 属性返回所有项目的总和
有效载荷是从另一个看起来像的 typescript 文件导入的
export interface Payload {
massKg: number;
}
这是我的 Rocket 类的代码,它应该接受 Payload 数组类型的项目并提供数字输出。我一直收到这个错误
Rocket.ts(20,12):错误 TS2365:运算符 '+=' 不能应用于类型 'number' 和 'Payload'。
import { Payload } from './Payload';
import { Astronaut } from './Astronaut';
import { Cargo } from './Cargo';
export class Rocket implements Payload {
name: string;
massKg: number;
totalCapacityKg: number;
cargoItems: Cargo[] = [];
astronauts: Astronaut[] = [];
constructor(name: string, totalCapacityKg: number,){
this.name = name;
this.totalCapacityKg = totalCapacityKg;
}
sumMass(items: Payload[]): number {
let sum: number = 0;
for(let i = 0; i < items.length; i++){
sum += items[0];
}
return sum;
}
}
let myRocket = new Rocket('rocket', 7);
console.log(myRocket.name);
console.log(myRocket.sumMass([]));
我只是不确定如何将接口(interface)用作数组或如何继续构建此方法。任何建议都非常感谢!
最佳答案
应该是
sum += items[i].massKg;
您的函数似乎不对任何类属性进行操作,因此可能完全存在于您的类之外。我建议使用 reduce
进一步简化此方法
关于javascript - 如何使用 typescript 返回导入数组类型的所有项目的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58964046/