diff --git a/src/rules/requireExactType.js b/src/rules/requireExactType.js index f480f037..e24d5193 100644 --- a/src/rules/requireExactType.js +++ b/src/rules/requireExactType.js @@ -10,10 +10,10 @@ const create = (context) => { return { TypeAlias (node) { - const {id: {name}, right: {type, exact}} = node; + const {id: {name}, right: {type, exact, indexers}} = node; if (type === 'ObjectTypeAnnotation') { - if (always && !exact) { + if (always && !exact && indexers.length === 0) { context.report({ data: {name}, message: 'Type identifier \'{{name}}\' must be exact.', diff --git a/tests/rules/assertions/requireExactType.js b/tests/rules/assertions/requireExactType.js index 92dab7c7..6d7e39f5 100644 --- a/tests/rules/assertions/requireExactType.js +++ b/tests/rules/assertions/requireExactType.js @@ -69,6 +69,9 @@ export default { { code: 'type foo = {| bar: string |};' }, + { + code: 'type foo = { [key: string]: string };' + }, { code: 'type foo = number;' },