如何在babel-types中创建TypeScript类型的方法参数

时间:2018-10-12 17:55:14

标签: babeljs

我正在尝试生成类似的内容:

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,但它需要属性和索引器,而不是名称,这似乎不是我想要的。

0 个答案:

没有答案