A type alias shouldn't trigger a no-use-before-define warning just like a function declaration. Cyclic type dependencies are common when using flow. For instance: type Node<T> = { head: T; tail: Node<T> } Fixes babel/babel-eslint#485
(fixes https://github.com/eslint/eslint/issues/9762)