Skip to content

Oxlint Type-Aware Preview

Esta publicación anuncia la vista previa técnica del linting con reconocimiento de tipos. Para ver la última versión alfa con estabilidad, configurabilidad y cobertura de reglas mejoradas, consulte el Type-Aware Linting Alpha announcementEsta publicación anuncia la vista previa técnica del linting con reconocimiento de tipos. Para obtener la última versión alfa con estabilidad, configurabilidad y cobertura de reglas mejoradas, consulte el anuncio de Type-Aware Linting Alpha.


We're thrilled to announce type-aware linting in oxlint!

El tan esperado no-floating-promisesLas tan esperadas "promesas de no flotar" y las reglas relacionadas están aquí.

Esta versión preliminar tiene como objetivo interactuar con la comunidad para colaborar y debatir mediante la documentación de nuestro proceso de decisión y detalles técnicos.

Quick Start

Si oxlintSi oxlint ya está configurado, instale oxlint-tsgolintSi oxlint ya está configurado, instale oxlint-tsgolint y ejecute oxlintSi oxlint ya está configurado, instale oxlint-tsgolint y ejecute oxlint con el --type-awareSi oxlint ya está configurado, instale oxlint-tsgolint y ejecute oxlint con el indicador --type-aware:

bash
pnpm add -D oxlint-tsgolint@latest
pnpm dlx oxlint --type-aware
`````````js
 × typescript-eslint(no-floating-promises): Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator.
   ╭─[packages/rolldown/src/api/watch/watcher.ts:30:7]
29 │       await this.close();
30 │       originClose();
   ·       ──────────────
31 │     };
   ╰────
`````````bash
pnpm add -D oxlint@latest oxlint-tsgolint@latest
pnpm dlx oxlint --init # generate .oxlintrc.json
`````````json
{
  "$schema": "./node_modules/oxlint/configuration_schema.json",
  "rules": {
    "typescript/await-thenable": "error",
    "typescript/no-array-delete": "error",
    "typescript/no-base-to-string": "error",
    "typescript/no-confusing-void-expression": "error",
    "typescript/no-duplicate-type-constituents": "error",
    "typescript/no-floating-promises": "error",
    "typescript/no-for-in-array": "error",
    "typescript/no-implied-eval": "error",
    "typescript/no-meaningless-void-operator": "error",
    "typescript/no-misused-promises": "error",
    "typescript/no-misused-spread": "error",
    "typescript/no-mixed-enums": "error",
    "typescript/no-redundant-type-constituents": "error",
    "typescript/no-unnecessary-boolean-literal-compare": "error",
    "typescript/no-unnecessary-template-expression": "error",
    "typescript/no-unnecessary-type-arguments": "error",
    "typescript/no-unnecessary-type-assertion": "error",
    "typescript/no-unsafe-argument": "error",
    "typescript/no-unsafe-assignment": "error",
    "typescript/no-unsafe-call": "error",
    "typescript/no-unsafe-enum-comparison": "error",
    "typescript/no-unsafe-member-access": "error",
    "typescript/no-unsafe-return": "error",
    "typescript/no-unsafe-type-assertion": "error",
    "typescript/no-unsafe-unary-minus": "error",
    "typescript/non-nullable-type-assertion-style": "error",
    "typescript/only-throw-error": "error",
    "typescript/prefer-promise-reject-errors": "error",
    "typescript/prefer-reduce-type-parameter": "error",
    "typescript/prefer-return-this-type": "error",
    "typescript/promise-function-async": "error",
    "typescript/related-getter-setter-pairs": "error",
    "typescript/require-array-sort-compare": "error",
    "typescript/require-await": "error",
    "typescript/restrict-plus-operands": "error",
    "typescript/restrict-template-expressions": "error",
    "typescript/return-await": "error",
    "typescript/switch-exhaustiveness-check": "error",
    "typescript/unbound-method": "error",
    "typescript/use-unknown-in-catch-callback-variable": "error"
  }
}