web-dev-qa-db-ja.com

Angular Error:0個の型引数が必要ですが、1個が取得されました

このチュートリアルに従ってTを実行したにもかかわらず、「タイプ引数が0であるが1になった」というタイプエラーが発生しています。 https://youtu.be/I317BhehZKM?t=57s

指定しました:

  newUserInfoComplete:boolean = false

まだ私はこの行の<boolean>で上記で指定されたエラーを取得しています:

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

また、単に<boolean>を省略すると、このエラーが発生します。

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

this.NewUserInfoCompleteには下線が付いています。

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 } }]);
  }

}
23
imnickvaughn

EventEmitterからではなく、Angularからprotractorをインポートしてみてください。

import { Component, OnInit, Output, EventEmitter } from '@angular/core';
86
ConnorsFan
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 } }]);
  }

}

これを試して

1
ignacioSG

インポートを確認するのを忘れました!くそーangularコアイベントエミッターではなく、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 } }]);
  }

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

EventEmitter@angular/coreにインポートされていることを確認してください。そうでない場合はエラーになります。

間違えた。インポートしていた

 import { EventEmitter } from 'events';

取得エラーが発生しました

0

インポートが間違っていたので、@ angular/coreからインポートしてください。

0
Kelvin Onkundi