diff --git a/packages/babel-generator/src/generators/flow.js b/packages/babel-generator/src/generators/flow.js index ac1a9e0b2293..5f36f55547fc 100644 --- a/packages/babel-generator/src/generators/flow.js +++ b/packages/babel-generator/src/generators/flow.js @@ -167,6 +167,10 @@ export function MixedTypeAnnotation() { this.word("mixed"); } +export function EmptyTypeAnnotation() { + this.word("empty"); +} + export function NullableTypeAnnotation(node: Object) { this.token("?"); this.print(node.typeAnnotation, node); diff --git a/packages/babel-traverse/src/path/inference/index.js b/packages/babel-traverse/src/path/inference/index.js index d6b9c878f337..55a52911a655 100644 --- a/packages/babel-traverse/src/path/inference/index.js +++ b/packages/babel-traverse/src/path/inference/index.js @@ -73,6 +73,8 @@ function _isBaseType(baseName: string, type?, soft?): boolean { return t.isAnyTypeAnnotation(type); } else if (baseName === "mixed") { return t.isMixedTypeAnnotation(type); + } else if (baseName === "empty") { + return t.isEmptyTypeAnnotation(type); } else if (baseName === "void") { return t.isVoidTypeAnnotation(type); } else { diff --git a/packages/babel-types/README.md b/packages/babel-types/README.md index a8dc4f272805..884aae17d6ea 100644 --- a/packages/babel-types/README.md +++ b/packages/babel-types/README.md @@ -755,6 +755,11 @@ See also `t.isMixedTypeAnnotation(node, opts)` and `t.assertMixedTypeAnnotation( Aliases: `Flow`, `FlowBaseAnnotation` +### t.emptyTypeAnnotation() + +See also `t.isEmptyTypeAnnotation(node, opts)` and `t.assertEmptyTypeAnnotation(node, opts)`. + +Aliases: `Flow`, `FlowBaseAnnotation` ### t.newExpression(callee, arguments) diff --git a/packages/babel-types/src/definitions/flow.js b/packages/babel-types/src/definitions/flow.js index 9b5d20dff54d..208382420cbd 100644 --- a/packages/babel-types/src/definitions/flow.js +++ b/packages/babel-types/src/definitions/flow.js @@ -167,6 +167,10 @@ defineType("MixedTypeAnnotation", { aliases: ["Flow", "FlowBaseAnnotation"] }); +defineType("EmptyTypeAnnotation", { + aliases: ["Flow", "FlowBaseAnnotation"] +}); + defineType("NullableTypeAnnotation", { visitor: ["typeAnnotation"], aliases: ["Flow"],