diff --git a/packages/babel-types/src/traverse/traverseFast.js b/packages/babel-types/src/traverse/traverseFast.js index 1db6a81cb2c2..306daa8d9c2a 100644 --- a/packages/babel-types/src/traverse/traverseFast.js +++ b/packages/babel-types/src/traverse/traverseFast.js @@ -1,10 +1,14 @@ // @flow import { VISITOR_KEYS } from "../definitions"; -import type { Node } from "@babel/types"; + +// This workaround is needed because BabelNode doesn't have a "type" property, +// which is only defined by its subclasses. +type _Node = T; +type Node = _Node<*>; opaque type Stop = Symbol; -type EnterCallback = (node: Node, opts: ?Object, parent: ?Node) => Stop | void; +type EnterCallback = (node: Node, opts?: Object, parent?: Node) => Stop | void; type TraverseFast = { (node: Node, enter: EnterCallback, opts?: Object): void,