diff --git a/src/rules/converters/no-inferrable-types.ts b/src/rules/converters/no-inferrable-types.ts index d2c54a83e..0611daa78 100644 --- a/src/rules/converters/no-inferrable-types.ts +++ b/src/rules/converters/no-inferrable-types.ts @@ -1,10 +1,25 @@ import { RuleConverter } from "../converter"; -export const convertNoInferrableTypes: RuleConverter = () => { +export const convertNoInferrableTypes: RuleConverter = (tslintRule) => { return { rules: [ { ruleName: "@typescript-eslint/no-inferrable-types", + ruleArguments: tslintRule.ruleArguments.length + ? tslintRule.ruleArguments.reduce( + (acc: any, arg: string) => { + switch (arg) { + case "ignore-params": + acc[0].ignoreParameters = true; + return acc; + case "ignore-properties": + acc[0].ignoreProperties = true; + return acc; + } + }, + [{}], + ) + : undefined, }, ], }; diff --git a/src/rules/converters/tests/no-inferrable-types.test.ts b/src/rules/converters/tests/no-inferrable-types.test.ts index 67d55f730..f2efad6f5 100644 --- a/src/rules/converters/tests/no-inferrable-types.test.ts +++ b/src/rules/converters/tests/no-inferrable-types.test.ts @@ -14,4 +14,34 @@ describe(convertNoInferrableTypes, () => { ], }); }); + + test("conversion with an argument", () => { + const result = convertNoInferrableTypes({ + ruleArguments: ["ignore-params"], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "@typescript-eslint/no-inferrable-types", + ruleArguments: [{ ignoreParameters: true }], + }, + ], + }); + }); + + test("conversion with arguments", () => { + const result = convertNoInferrableTypes({ + ruleArguments: ["ignore-params", "ignore-properties"], + }); + + expect(result).toEqual({ + rules: [ + { + ruleName: "@typescript-eslint/no-inferrable-types", + ruleArguments: [{ ignoreParameters: true, ignoreProperties: true }], + }, + ], + }); + }); });