错误TS2554:期望4个参数,但得到0

时间:2020-04-24 00:21:45

标签: angular

我该如何解决?

以下代码为TS:

这应该很简单,但是对角度来说是新的

是一个简单的页面,用于计算学生的平均水平

import { Grade } from './calculator.model';
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-calculator',
  templateUrl: './calculator.component.html',
  styleUrls: ['./calculator.component.css'],
})
export class CalculatorComponent implements OnInit {
  grade: Grade = {
    name: '',
    grade1: null,
    grade2: null,
    grade3: null,
  };

  constructor() {}

  ngOnInit(): void {}

  calcGrade(
    grade1: number,
    grade2: number,
    grade3: number,
    account: number
  ): void {
    account = (grade1 * 0.25 + grade2 * 0.25 + grade3 * 0.5) / 3;

    if (grade1 && grade2 < 6.2) {
      console.log('aluno repovado');
    }
  }
}

我尝试将参数放入构造函数中,但不起作用

下面的HTML代码

在html中,我刚刚传递了在组件中创建的函数

<div class="container">
  <div class="header">
    Olá Professor
  </div>
  <form class="form" action="submit">
    <input
      [(ngModel)]="grade.name"
      type="text"
      class="inputName"
      placeholder="Nome do Aluno:"
    />
    <input
      [(ngModel)]="grade.grade1"
      type="number"
      class="inputGrade"
      placeholder="Nota da prova 1:"
    />
    <input
      [(ngModel)]="grade.grade2"
      type="number"
      class="inputGrade"
      placeholder="Nota da prova 2:"
    />
    <input
      [(ngModel)]="grade.grade3"
      type="number"
      class="inputGrade"
      placeholder="Nota da prova 3:"
    />

    <button (click)="calcGrade()" class="button">Calcular</button>
  </form>
</div>

1 个答案:

答案 0 :(得分:0)

您的calcGrade函数需要4个参数,但是当您在HTML模板中调用它时,则不提供任何参数。

相反,请从函数签名中删除参数,然后从您在函数内部创建(分级)的ngModal对象访问它们。

calcGrade() {
   account = (grade.grade1 * 0.25 + grade.grade2 * 0.25 + grade.grade3 * 0.5) / 3;

   if (grade.grade1 && grade.grade2 < 6.2) {
     console.log('aluno repovado');
   }

}