Skip to content

Track TypeScript ESLint Compatibility Configs Implementation #36

@christopher-buss

Description

@christopher-buss

Background

These configs provide rule overrides to make TypeScript ESLint's built-in configs compatible with Roblox-TS development patterns, following the same approach as eslint-config-prettier. Users can layer these configs on top of TypeScript ESLint's recommended configs to disable rules that are incompatible with Roblox-TS.

Implementation Checklist

  • recommendedtsRecommendedCompat - Basic TypeScript rules compatibility
  • stricttsStrictCompat - Strict TypeScript rules compatibility
  • stylistictsStylisticCompat - Stylistic rules compatibility
  • recommended-type-checkedtsRecommendedTypeCheckedCompat - Type-aware recommended rules
  • strict-type-checkedtsStrictTypeCheckedCompat - Type-aware strict rules
  • stylistic-type-checkedtsStylisticTypeCheckedCompat - Type-aware stylistic rules

Usage Examples

ESLint v9+ (Flat Config)

// eslint.config.js
import tseslint from '@typescript-eslint/eslint-plugin'
import robloxTs from 'eslint-plugin-roblox-ts'

export default [
  ...tseslint.configs.recommended,
  robloxTs.configs.tsRecommendedCompat,
  robloxTs.configs.recommended
]

ESLint v8 (Legacy Config)

// .eslintrc.js
module.exports = {
  extends: [
    '@typescript-eslint/recommended',
    'plugin:roblox-ts/tsRecommendedCompatLegacy',
    'plugin:roblox-ts/recommended-legacy'
  ]
}

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions