From 07221872e0c70aa94a8212ed205feb889472e896 Mon Sep 17 00:00:00 2001 From: Geraint White Date: Tue, 18 Sep 2018 23:03:52 +0100 Subject: [PATCH] fix: make require-exact-type ignore indexers in map types (#354) --- src/rules/requireExactType.js | 4 ++-- tests/rules/assertions/requireExactType.js | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) 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;' },