programing

이벤트 이미터와 이벤트 이미터의 차이점은 무엇입니까?

javajsp 2023. 6. 13. 21:59

이벤트 이미터와 이벤트 이미터의 차이점은 무엇입니까?

경우에 따라 제네릭 변수가 생략될 수 있습니다.다음과 같이:

@Component( ... )
class MyComponent {

  @Output()
  public cancel = new EventEmitter<undefined>();

  private myFoo() {
    this.cancel.emit(); // no need to pass any value
  }
}

자, 질문은 다음과 같습니다.이벤트 이미터 유형을 정의하는 더 나은 방법은 다음 중 무엇입니까?
EventEmitter<undefined>또는EventEmitter<void>.

  • void에 논쟁이 없기 때문에 더 좋습니다..emit()불러.
  • undefined더 낫습니다.emit()동일.emit(undefined)

당신 생각은 어떻습니까?

TypeScript 문서에 따르면,voidtype은 두 가지를 모두 허용합니다.undefined그리고.null따라서 다음 코드가 유효합니다.

@Component( ... )
class MyComponent {

  @Output()
  public cancel = new EventEmitter<void>();

  private myFoo() {
    this.cancel.emit();
    this.cancel.emit(undefined);
    this.cancel.emit(null);
  }
}

반면에EventEmitter<undefined>당신은 오직 통과할 수 있을 것입니다.undefined또는 논쟁 없음, 아마도 당신의 경우 더 정확할 것입니다. 즉, 당신이 합격했다고 해서 큰 문제가 발생하는 것을 볼 수 없습니다.null당신이 어쨌든 가치를 기대하지 않는 방출자에게, 그래서 나는 선택하고 싶을 것입니다.void그것이 더 짧은 선택이기 때문입니다.

언급URL : https://stackoverflow.com/questions/45464495/what-are-the-differences-between-eventemitterundefined-and-eventemittervoid