@nexso/eslint-config-typescript

Nexso Flat Config for TypeScript projects using ESLint 10
1,232
Install
npm install @nexso/eslint-config-typescript
Latest Version:2.0.5
License:MIT
Last Updated:Oct 5, 2026
Links: GitHub  ·  npm
Maintainer: cersouza-nexso

@nexso/eslint-config-typescript

Nexso's ESLint 10 Flat Config for TypeScript. It extends @nexso/eslint-config, so JavaScript and TypeScript files share the same security, import, Node.js, stylistic, and ordering conventions.

Requirements

  • Node.js ^20.19.0 || ^22.13.0 || >=24
  • ESLint ^10.7.0
  • TypeScript >=5.0.0 <6.1.0

Installation

npm install --save-dev eslint typescript @nexso/eslint-config @nexso/eslint-config-typescript

Usage

Create eslint.config.js:

import nexsoTypeScript from '@nexso/eslint-config-typescript';

export default [
  ...nexsoTypeScript,
  {
    rules: {
      // Project overrides
    },
  },
];

The default preset uses the syntax-aware typescript-eslint recommended rules. It does not require a tsconfig.json and is suitable for libraries, scripts, and mixed JavaScript/TypeScript projects.

Type-aware linting

Use the named typeChecked export when rules should use TypeScript's type information:

import { typeChecked } from '@nexso/eslint-config-typescript';

export default typeChecked;

This preset enables parserOptions.projectService. The linted TypeScript files must belong to a TypeScript project. Use the default preset when that condition is not true for every file.

typescript-eslint supplies the TypeScript parser, ESLint plugin, and rule presets. It does not enable Prettier. Add Prettier separately only if the project wants a formatter in addition to ESLint's @stylistic rules; avoid enabling overlapping formatting rules in both tools.

Nuxt

Nuxt needs framework-specific configuration for Vue SFC parsing, generated globals, and Nuxt file conventions. Install and initialize @nuxt/eslint, then compose this package with the generated config:

npx nuxi module add eslint
// eslint.config.mjs
import withNuxt from './.nuxt/eslint.config.mjs';
import { nuxt as nexsoNuxt } from '@nexso/eslint-config-typescript';

export default withNuxt(
  ...nexsoNuxt,
);

Keep the Nuxt-generated config first so it owns the .vue parser and Nuxt globals. The nuxt preset then adds the shared Nexso rules and disables core rules such as no-unused-vars for .vue files when the @typescript-eslint equivalent is active. It does not bundle a second copy of the Vue/Nuxt plugins.

Migrating from version 1

  • Replace .eslintrc* with eslint.config.js or eslint.config.mjs.
  • Spread the exported config array.
  • Remove eslint-config-airbnb-typescript, @typescript-eslint/parser, and @typescript-eslint/eslint-plugin if they were installed only for this config; the unified typescript-eslint package now supplies them.
  • Upgrade Node.js to a version supported by ESLint 10.

License

MIT

Related Packages

@nitra/eslint-config

An ESLint shareable config for projects using Vue and Node

30,246
@privyid/eslint-config-persona

Eslint shareable config for Persona project

5,861 68
@deviltea/eslint-config

DevilTea's opinionated ESLint flat config for JavaScript, TypeScript, and Vue.

21,263 0
@tada5hi/eslint-config-vue

Shared ESLint flat config for Vue.js projects (deprecated — use @tada5hi/eslint-...

10,599 1
@lehoczky/eslint-config-vue

ESLint Config for Vue3 with TypeScript

2,595 0

Version History

Version Released License
2.0.5 MIT
2.0.4 MIT
2.0.3 MIT
2.0.2 MIT
2.0.1 MIT