Я пытаюсь сгенерировать что-то вроде:
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
, но он принимает свойства и индексаторы, а не имя, что не похоже на то, что я хочу.