javascript - 如何使用 typescript 返回导入数组类型的所有项目的总和?

标签 javascript typescript methods

我坚持制作一种应该遵循以下准则的方法:

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/

相关文章:

Angular - 如何正确测试在 Observable 订阅 block 中执行的操作?

javascript - 如何为我的 @types/definition 使用版本文件夹

javascript - 提交后重定向到另一个页面

javascript - 错误类型错误 : Cannot read property '-LlWio7vFBuxfeviKdWa' of undefined

javascript - 这个javascript是什么意思

javascript - 如何防止谷歌可视化区域图中多列重叠

typescript - 如何仅获取类的构造签名?

java - 多种方法

methods - 普通口齿不清 : extract methods from generic function

java - 我写了 Accessors 和 Mutators 方法,但我仍然无法访问私有(private)变量!为什么?