TypeScript stylistic rules for ESLint providing comprehensive code style enforcement for modern ESLint configurations.
—
Plugin configuration capabilities for integrating @stylistic/eslint-plugin-ts with ESLint, including predefined configuration presets and individual rule access.
The default export provides the complete plugin object with rules and configurations.
/**
* Main plugin export containing rules and configuration presets
*/
declare const plugin: {
rules: Rules;
configs: {
"disable-legacy": Linter.Config;
"all": Linter.Config;
"all-flat": Linter.Config;
};
};
export default plugin;Usage Examples:
import stylistic from "@stylistic/eslint-plugin-ts";
// Basic plugin registration
export default [
{
plugins: {
"@stylistic/ts": stylistic,
},
rules: {
"@stylistic/ts/indent": ["error", 2],
"@stylistic/ts/quotes": ["error", "single"],
},
},
];
// Access individual rules
const indentRule = stylistic.rules.indent;Pre-configured ESLint configurations for common use cases.
interface ConfigPresets {
/** Disable all legacy TypeScript formatting rules from @typescript-eslint */
"disable-legacy": Linter.Config;
/** Enable all stylistic rules with default settings */
"all": Linter.Config;
/** @deprecated use 'all' instead - Enable all stylistic rules */
"all-flat": Linter.Config;
}Disables all legacy @typescript-eslint formatting rules to prevent conflicts.
/**
* Configuration that disables all legacy @typescript-eslint formatting rules
* Use this to prevent conflicts when migrating from @typescript-eslint
*/
declare const disableLegacy: Linter.Config;Usage Examples:
import stylistic from "@stylistic/eslint-plugin-ts";
// Disable legacy rules
export default [
stylistic.configs["disable-legacy"],
{
plugins: {
"@stylistic/ts": stylistic,
},
rules: {
"@stylistic/ts/indent": ["error", 2],
},
},
];Enables all stylistic rules with their default settings.
/**
* Configuration that enables all stylistic rules
* Recommended for comprehensive style enforcement
*/
declare const allConfig: Linter.Config;Usage Examples:
import stylistic from "@stylistic/eslint-plugin-ts";
// Enable all rules with defaults
export default [stylistic.configs.all];
// Combine with custom overrides
export default [
stylistic.configs.all,
{
rules: {
"@stylistic/ts/indent": ["error", 4], // Override default indent
"@stylistic/ts/quotes": "off", // Disable quotes rule
},
},
];Direct access to specific rules for custom configurations.
/**
* Access individual rules from the plugin
* Each rule is a standard ESLint Rule.RuleModule
*/
interface RuleAccess {
rules: {
[ruleName: string]: Rule.RuleModule;
};
}Usage Examples:
import stylistic from "@stylistic/eslint-plugin-ts";
import indentRule from "@stylistic/eslint-plugin-ts/rules/indent";
// Direct rule import
export default [
{
plugins: {
"@stylistic/ts": stylistic,
},
rules: {
"@stylistic/ts/indent": ["error", 2],
},
},
];
// Using directly imported rule
const customConfig = {
plugins: {
"custom-indent": indentRule,
},
rules: {
"custom-indent": ["error", 4],
},
};import stylistic from "@stylistic/eslint-plugin-ts";
export default [
{
plugins: {
"@stylistic/ts": stylistic,
},
rules: {
// Spacing rules
"@stylistic/ts/block-spacing": "error",
"@stylistic/ts/comma-spacing": "error",
"@stylistic/ts/key-spacing": "error",
// Style rules
"@stylistic/ts/brace-style": ["error", "1tbs"],
"@stylistic/ts/indent": ["error", 2],
"@stylistic/ts/quotes": ["error", "single"],
"@stylistic/ts/semi": ["error", "always"],
},
},
];import stylistic from "@stylistic/eslint-plugin-ts";
export default [
// First disable legacy rules
stylistic.configs["disable-legacy"],
// Then configure stylistic rules
{
plugins: {
"@stylistic/ts": stylistic,
},
rules: {
"@stylistic/ts/member-delimiter-style": [
"error",
{
multiline: { delimiter: "semi" },
singleline: { delimiter: "semi" },
},
],
"@stylistic/ts/type-annotation-spacing": "error",
},
},
];import stylistic from "@stylistic/eslint-plugin-ts";
export default [
// Start with all rules
stylistic.configs.all,
// Customize specific rules
{
rules: {
// Adjust indentation
"@stylistic/ts/indent": ["error", 4],
// Prefer single quotes
"@stylistic/ts/quotes": ["error", "single"],
// Require semicolons
"@stylistic/ts/semi": ["error", "always"],
// Configure member delimiters
"@stylistic/ts/member-delimiter-style": [
"error",
{
multiline: {
delimiter: "semi",
requireLast: true,
},
singleline: {
delimiter: "semi",
requireLast: false,
},
},
],
},
},
];Install with Tessl CLI
npx tessl i tessl/npm-stylistic--eslint-plugin-ts