我正在尝试生成类似的内容:
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
是一种流类型,所以我基本上是在其他TS输出中使用/滥用babel-types流类型;还有更多的TS犹太方法为方法参数列表创建类型标识符吗?
2)我不知道如何为“ OneType”创建流类型参数。我看到了诸如t.stringTypeAnnotation()
之类的东西,但是没有看到“这是我的对象类型”。有t.objectTypeAnnotation
,但它需要属性和索引器,而不是名称,这似乎不是我想要的。