Skip to content

./rules

Exports defineRules, RuleOptions, and rule records for Angular, Common, Import, JavaScript, Lodash, React, RegExp, package/tsconfig sorting, TypeScript, Vue, and Vue Legacy.

ts
import { defineRules, typescriptRules, vueRules } from "@fast-china/eslint-config/rules";

export const rules = defineRules({
	...typescriptRules,
	...vueRules,
	"@typescript-eslint/no-explicit-any": "off",
});

See the rule handbook for activation, scope, options, explanations, and examples. Rule records contain no parsers, plugins, environments, or file scopes.

defineRules Rules

Defines a fully typed ESLint rule record.

Signature

ts
export const defineRules = <const Rules extends RuleOptions>(rules: RejectUnknownRuleNames<Rules>): Rules & Linter.RulesRecord;

Example

js
import { defineRules, vueConfig } from "@fast-china/eslint-config";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...vueConfig,
	{
		name: "project/custom-rules",
		rules: defineRules({
			eqeqeq: ["error", "always"],
			"no-console": "warn",
		}),
	},
]);

Input

InputTypeRequired / defaultDescription
rulesRejectUnknownRuleNames<Rules>RequiredRule record to validate; unknown names and invalid options produce type errors.

Returns

ValueTypeDescription
configsRules & Linter.RulesRecordReturns the same record with ESLint RulesRecord compatibility typing.