을 얻을 변수의 이름을 인수 함수의 타이프 라이터

0

질문

고 싶을 설정하려면 빠르고 쉬운 방법은 테스트 기능을 각 곳에 나는 단지의 이름을 입력 기능을 한 번에서 생성자고 테스트합니다. 예를 들어:

constructor() {
    this.test(this.FucntionName)  <= logs function name and output
  }

문제이는 경우고 전달하는 기능으로 인수를 호출하지 않고,그것을 얻는 다. 범위에 오류가 있습니다. 를 얻을 수 있는 방법을 모두 함수의 이름과 값을 반환을 통과하면 그것으로 테스트()함수에 입력하지 않고 두 개의 인?

더 나은 옵션은,아마 어떤 장치 테스트 프레임워크를 제공합 이?

나의 현재 방법이지만,그것은 내가 좋아에 대한 필요성을 제거한 두 번째 인수:

export class AuthService {
  constructor(
    ...
  ) {
    this.test(this.FunctionName(), 'FunctionName')// I would like to remove the need to repeat the name as string
  }

  test(sub: any, name) {
    sub.subscribe(
      data => {
        console.group("==========", name, "()    TEST  ===============")
        console.log("Output Type:", typeof data)
        typeof data == 'object' ? console.table(data) : console.log(data);
        console.groupEnd()
      }
    )
  }
angular typescript
2021-11-24 01:30:50
2

최고의 응답

1

가장 신뢰할 수 있는 방법이 될 것이다 통과 문자열,다음 사용 브라켓 표기 그것을 찾기에 this. 클래스를 사용하여 필 화살표수 그래서 this 컨텍스트는 올바른 것입니다.

test = (methodName) {
    this[methodName]().subscribe(
        data => {
            console.group("==========", methodName, "()    TEST  ===============")
            // ...
2021-11-24 01:35:55
0

당신은 다음과 같이 쓸 수 있습니다(확장하는 대답@CertainPerformance)

export class AuthService {
  constructor(
    ...
  ) {
    this.test('FunctionName')
  }

  test(name) {
    this[name]().subscribe(
      data => {
        console.group("==========", name, "()    TEST  ===============")
        console.log("Output Type:", typeof data)
        typeof data == 'object' ? console.table(data) : console.log(data);
        console.groupEnd()
      }
    )
  }
2021-11-25 08:11:59

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................