Как создать параметр метода TypeScript в типах babel - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь сгенерировать что-то вроде:

type Foo = {
  method(a: OneType, b: TwoType);
}

С babel-типами (для контекста, потому что это то, что используют генераторы кода машинописного кода apollo-cli).

Я могусоздать сигнатуру метода с t.TSMethodSignature, но его параметры представляют собой список идентификаторов, поэтому я делаю:

const a = t.identifier("a");
a.typeAnnotation = t.typeAnnotation(t.AnyTypeAnnotation());

Это работает и генерирует «a: any», но:

1) typeAnnotation - это тип потока, поэтому я в основном использую / злоупотребляю типами потоков типа babel в том, что иначе является выходом TS;Есть ли более TS кошерный способ создания типизированных идентификаторов для списков параметров метода?

2) Я не могу понять, как сделать параметр типа потока для "OneType".Я вижу такие вещи, как t.stringTypeAnnotation() и т. Д., Но не вижу «это мой тип объекта»;есть t.objectTypeAnnotation, но он принимает свойства и индексаторы, а не имя, что не похоже на то, что я хочу.

...