diff --git a/src/rules/noTypesMissingFileAnnotation.js b/src/rules/noTypesMissingFileAnnotation.js index cff6e1e1..b6823c1f 100644 --- a/src/rules/noTypesMissingFileAnnotation.js +++ b/src/rules/noTypesMissingFileAnnotation.js @@ -20,6 +20,11 @@ export default (context) => { }; return { + ExportNamedDeclaration (node) { + if (node.exportKind === 'type') { + reporter(node, 'exports'); + } + }, ImportDeclaration (node) { if (node.importKind === 'type') { reporter(node, 'imports'); diff --git a/tests/rules/assertions/noTypesMissingFileAnnotation.js b/tests/rules/assertions/noTypesMissingFileAnnotation.js index 24f31838..f035b6b4 100644 --- a/tests/rules/assertions/noTypesMissingFileAnnotation.js +++ b/tests/rules/assertions/noTypesMissingFileAnnotation.js @@ -30,6 +30,12 @@ export default { message: 'Type imports require valid Flow declaration.' }] }, + { + code: 'export type {A} from "a"', + errors: [{ + message: 'Type exports require valid Flow declaration.' + }] + }, { code: 'function t(): T{}', errors: [{ @@ -52,6 +58,9 @@ export default { }, { code: '/* @noflow */\nimport {type A} from "a"' + }, + { + code: '/* @noflow */\nexport type {A} from "a"' } ] };