Невозможно передать класс вспомогательному методу - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть что-то, что компилируется:

export namespace Foo {
   export namespace GET {
       export namespace Basic {
          export class Req {}
       }
   }
}

type Req = Foo.GET.Basic.Req;
e.setRequestBodyType(Foo.GET.Basic.Req);

я хотел бы сделать это, уменьшив его до одной строки, вот так:

type Req = typeof e.setRequestBodyType(Foo.GET.Basic.Req);

Однако я получаю этоошибка:

enter image description here

tsc - часы просто говорят это:

express-test.ts: 34: 37 -ошибка TS1005: ';'ожидается.

34 type Req = typeof e.setRequestType (Foo.GET.Basic.Req);

Кто-нибудь знает, как выполнить то, что я пытаюсь сделать?

Прямо сейчас вспомогательный метод выглядит так:

  setRequestType(v:any){
    return v;
  }

Я пробовал это:

  setRequestType<T>(v:T): T{
    return v;
  }      

Но тогда я получаю:

enter image description here ~

Странно.

1 Ответ

0 голосов
/ 04 декабря 2018

Оператор типа typeof принимает только идентификаторы, но не вызовы методов.

См. spec .

...