ast-types
ast-types copied to clipboard
Wrong structure of TSFunctionType node
Given the following code:
export const FooFoo = buildFoo('Foo') as unknown as (foo: any) => Foo | FooLegacy;
What ast-explorer shows is that the TSUnionType
node is on the returnType
attribute of the TSFunctionType
node:
However when using jscodeshift with recast/ast-types it's being parsed as the following:
instead of being on the tsFunctionTypeNode.returnType.typeAnnotation
attribute, it's actually structured as tsFunctionTypeNode.typeAnnotation.typeAnnotation
additionally, it seems TSFunctionTypeBuilder
only takes single parameters
argument, so it seems it's impossible to annotate the return type?
https://github.com/benjamn/ast-types/blob/6e4d91213c27b6ba76a747c45200aa0e8498b176/src/gen/builders.ts#L3248