From fc6a394ab9d6ab800fc5ae0559fba5858b0936d8 Mon Sep 17 00:00:00 2001 From: Rebecca Stevens Date: Mon, 1 Apr 2024 14:53:04 +1300 Subject: [PATCH] fix(readonly-type): empty object types should not trigger reports fix #796 --- src/rules/readonly-type.ts | 18 ++++++++++-------- tests/rules/readonly-type/ts/valid.ts | 7 +++++++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/rules/readonly-type.ts b/src/rules/readonly-type.ts index 5f98ff212..426778886 100644 --- a/src/rules/readonly-type.ts +++ b/src/rules/readonly-type.ts @@ -178,14 +178,16 @@ function checkTypeLiteral( } if (mode === "generic") { - const needsWrapping = node.members.every( - (member) => - (isPropertyDefinition(member) || - isTSIndexSignature(member) || - isTSParameterProperty(member) || - isTSPropertySignature(member)) && - member.readonly, - ); + const needsWrapping = + node.members.length > 0 && + node.members.every( + (member) => + (isPropertyDefinition(member) || + isTSIndexSignature(member) || + isTSParameterProperty(member) || + isTSPropertySignature(member)) && + member.readonly, + ); if (needsWrapping) { return { diff --git a/tests/rules/readonly-type/ts/valid.ts b/tests/rules/readonly-type/ts/valid.ts index acd28f581..f0e0c85d4 100644 --- a/tests/rules/readonly-type/ts/valid.ts +++ b/tests/rules/readonly-type/ts/valid.ts @@ -73,6 +73,13 @@ const tests: Array>> = [ `, optionsSet: [["keyword"]], }, + // Empty should not cause issues + { + code: dedent` + type Foo = {}; + `, + optionsSet: [["keyword"], ["generic"]], + }, ]; export default tests;