source

Angular Event Emitter Error: 0개의 유형 인수가 필요하지만 1개를 받았습니다.

manysource 2023. 8. 13. 09:48

Angular Event Emitter Error: 0개의 유형 인수가 필요하지만 1개를 받았습니다.

T.https://youtu.be/I317BhehZKM?t=57s 에 이 튜토리얼을 따라갔음에도 불구하고 "예상된 0개의 유형 인수, 그러나 1개를 받았습니다"라는 유형 오류가 발생합니다.

지정한 항목:

  newUserInfoComplete:boolean = false

하지만 위에 지정된 오류가 발생했습니다.<boolean>다음 줄에서:

  @Output() newUserInfoCompleteEvent = new EventEmitter <boolean> ();

또한, 제가 단순히 생략한다면,<boolean>다음 오류가 발생했습니다.

Argument of type 'boolean' is not assignable to parameter of type 'string'.

그리고 이거.New UserInfoComplete는 여기에 밑줄이 그어져 있습니다.

this.newUserInfoCompleteEvent.emit(this.newUserInfoComplete);

내 구성요소는 다음과 같습니다.

import { Component, OnInit, Output } from '@angular/core';
import { slideToRight } from '../../../../router.animations';
import { Router, ActivatedRoute, UrlSegment } from '@angular/router';
import { EventEmitter } from 'protractor';

@Component({
  selector: 'app-new-user-input',
  templateUrl: './new-user-input.component.html',
  styleUrls: ['./new-user-input.component.css'],
  animations: [slideToRight()]
})
export class NewUserInputComponent implements OnInit {

  newUserInfoComplete:boolean = false

  @Output() newUserInfoCompleteEvent = new EventEmitter <boolean> ();

  constructor(private router: Router, r: ActivatedRoute) {
    r.url.subscribe((s: UrlSegment[]) => {
      console.log("url", s); //https://vsavkin.com/angular-router-understanding-router-state-7b5b95a12eab
    });
  }

  ngOnInit() {
  }



  sendNewUserInfoComplete(){
    this.newUserInfoCompleteEvent.emit(this.newUserInfoComplete);
  }


  displaySibling() {
    console.log(this.router);
    this.router.navigate(['../', { outlets: { newuserorginfo: ['newuserorginfo'] } }])
  }

  closeBlade() {
    this.router.navigate([{ outlets: { newuserinput: null } }]);
  }

}

가져오기 시도EventEmitter부터@angualar/core대신에protractor:

import { Component, OnInit, Output, EventEmitter } from '@angular/core';

수입품을 확인하는 것을 잊었습니다!이런. 각도 코어 이벤트 이미터가 아닌 PROTRACTOR의 이벤트 이미터를 사용하고 있었습니다.

import { EventEmitter } from '@angular/core';
import { Component, OnInit, Output } from '@angular/core';
import { slideToRight } from '../../../../router.animations';
import { Router, ActivatedRoute, UrlSegment } from '@angular/router';

@Component({
  selector: 'app-new-user-input',
  templateUrl: './new-user-input.component.html',
  styleUrls: ['./new-user-input.component.css'],
  animations: [slideToRight()]
})
export class NewUserInputComponent implements OnInit {

  newUserInfoComplete = false;

  @Output() newUserInfoCompleteEvent = new EventEmitter<boolean>();

  constructor(private router: Router, r: ActivatedRoute) {
    r.url.subscribe((s: UrlSegment[]) => {
      console.log("url", s); //https://vsavkin.com/angular-router-understanding-router-state-7b5b95a12eab
    });
  }

  ngOnInit() {
  }



  sendNewUserInfoComplete() {
    this.newUserInfoCompleteEvent.emit(this.newUserInfoComplete);
  }


  displaySibling() {
    console.log(this.router);
    this.router.navigate(['../', { outlets: { newuserorginfo: ['newuserorginfo'] } }])
  }

  closeBlade() {
    this.router.navigate([{ outlets: { newuserinput: null } }]);
  }

}

상위 답변에 언급된 것처럼 가져오기 안 함EventEmitter'protractor'에서 '@protractor/core'에서 가져옵니다.

발생한 이유: 사용자가 사용했기 때문입니다.EventEmmiter 가져오기 전에 자동으로 'protractor' 모듈에서 가져옵니다.

import { Component, Output } from '@angular/core';
import { slideToRight } from '../../../../router.animations';
import { Router, ActivatedRoute, UrlSegment } from '@angular/router';
import { EventEmitter } from 'protractor';

@Component({
  selector: 'app-new-user-input',
  templateUrl: './new-user-input.component.html',
  styleUrls: ['./new-user-input.component.css'],
  animations: [slideToRight()]
})
export class NewUserInputComponent {

  newUserInfoComplete = false;
  @Output() newUserInfoCompleteEvent = new EventEmitter <boolean> ();

  constructor(private router: Router, r: ActivatedRoute) {
    r.url.subscribe((s: UrlSegment[]) => {
      console.log("url", s);
    });
  }
  sendNewUserInfoComplete(){
    this.newUserInfoCompleteEvent.emit(!!this.newUserInfoComplete);
  }


  displaySibling() {
    console.log(this.router);
    this.router.navigate(['../', { outlets: { newuserorginfo: ['newuserorginfo'] } }])
  }

  closeBlade() {
    this.router.navigate([{ outlets: { newuserinput: null } }]);
  }

}

이것을 먹어보세요.

언급URL : https://stackoverflow.com/questions/50494949/angular-eventemitter-error-expected-0-type-arguments-but-got-1