Získat název proměnné argument funkce Strojopis

0

Otázka

Chtěl bych nastavit rychlý snadný způsob, jak otestovat funkce v Úhlové, kde bych jen zadat název funkce, jakmile v konstruktoru a testovat je. např:

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

Problém s tímto je, že když se pokusím předat funkci jako argument a nenahlásí to, mám to. rozsah chyba. Jak mohu získat jak název funkce a její návratová hodnota, když jsem se projít do test() funkce, aniž byste museli zadávat dva argumenty?

Je lepší volba, možná, že někteří jednotka testování rámců poskytnout?

Můj současný přístup funguje, ale to je neohrabaný a rád bych, aby odstranit potřebu pro druhý argument:

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

Nejlepší odpověď

1

Nejspolehlivější způsob, jak by bylo předat řetězec, pak použijte držák notace se podívat na this. Použití třídy pole arrow funkce, takže this kontext je správné.

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

Můžete napsat něco jako níže (prodloužení odpověď @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

V jiných jazycích

Tato stránka je v jiných jazycích

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