oxc
oxc copied to clipboard
☂️ typescript-eslint
[!WARNING] This comment is maintained by CI. Do not edit this comment directly. To update comment template, see https://github.com/oxc-project/oxc/tree/main/tasks/lint_rules
This is tracking issue for @typescript-eslint/eslint-plugin
.
There are 66(+ 6 deprecated) rules.
- 10/40 recommended rules are remaining as TODO
- 15/26 not recommended rules are remaining as TODO
To get started, run the following command:
just new-typescript-rule <RULE_NAME>
Then register the rule in crates/oxc_linter/src/rules.rs
and also declare_all_lint_rules
at the bottom.
Recommended rules
✨: 30, 🚫: 0 / total: 40
Status | Name | Docs |
---|---|---|
✨ | typescript/adjacent-overload-signatures | https://typescript-eslint.io/rules/adjacent-overload-signatures |
✨ | typescript/array-type | https://typescript-eslint.io/rules/array-type |
✨ | typescript/ban-tslint-comment | https://typescript-eslint.io/rules/ban-tslint-comment |
typescript/class-literal-property-style | https://typescript-eslint.io/rules/class-literal-property-style | |
typescript/consistent-generic-constructors | https://typescript-eslint.io/rules/consistent-generic-constructors | |
✨ | typescript/consistent-indexed-object-style | https://typescript-eslint.io/rules/consistent-indexed-object-style |
typescript/consistent-type-assertions | https://typescript-eslint.io/rules/consistent-type-assertions | |
✨ | typescript/consistent-type-definitions | https://typescript-eslint.io/rules/consistent-type-definitions |
✨ | typescript/no-array-constructor | https://typescript-eslint.io/rules/no-array-constructor |
✨ | typescript/no-confusing-non-null-assertion | https://typescript-eslint.io/rules/no-confusing-non-null-assertion |
✨ | typescript/no-duplicate-enum-values | https://typescript-eslint.io/rules/no-duplicate-enum-values |
✨ | typescript/no-dynamic-delete | https://typescript-eslint.io/rules/no-dynamic-delete |
✨ | typescript/no-empty-function | https://typescript-eslint.io/rules/no-empty-function |
typescript/no-empty-object-type | https://typescript-eslint.io/rules/no-empty-object-type | |
✨ | typescript/no-explicit-any | https://typescript-eslint.io/rules/no-explicit-any |
✨ | typescript/no-extra-non-null-assertion | https://typescript-eslint.io/rules/no-extra-non-null-assertion |
✨ | typescript/no-extraneous-class | https://typescript-eslint.io/rules/no-extraneous-class |
typescript/no-inferrable-types | https://typescript-eslint.io/rules/no-inferrable-types | |
typescript/no-invalid-void-type | https://typescript-eslint.io/rules/no-invalid-void-type | |
✨ | typescript/no-misused-new | https://typescript-eslint.io/rules/no-misused-new |
✨ | typescript/no-namespace | https://typescript-eslint.io/rules/no-namespace |
✨ | typescript/no-non-null-asserted-nullish-coalescing | https://typescript-eslint.io/rules/no-non-null-asserted-nullish-coalescing |
✨ | typescript/no-non-null-asserted-optional-chain | https://typescript-eslint.io/rules/no-non-null-asserted-optional-chain |
✨ | typescript/no-non-null-assertion | https://typescript-eslint.io/rules/no-non-null-assertion |
typescript/no-require-imports | https://typescript-eslint.io/rules/no-require-imports | |
✨ | typescript/no-this-alias | https://typescript-eslint.io/rules/no-this-alias |
✨ | typescript/no-unnecessary-type-constraint | https://typescript-eslint.io/rules/no-unnecessary-type-constraint |
✨ | typescript/no-unsafe-declaration-merging | https://typescript-eslint.io/rules/no-unsafe-declaration-merging |
typescript/no-unsafe-function-type | https://typescript-eslint.io/rules/no-unsafe-function-type | |
typescript/no-unused-expressions | https://typescript-eslint.io/rules/no-unused-expressions | |
✨ | typescript/no-unused-vars | https://typescript-eslint.io/rules/no-unused-vars |
✨ | typescript/no-useless-constructor | https://typescript-eslint.io/rules/no-useless-constructor |
✨ | typescript/no-wrapper-object-types | https://typescript-eslint.io/rules/no-wrapper-object-types |
✨ | typescript/prefer-as-const | https://typescript-eslint.io/rules/prefer-as-const |
✨ | typescript/prefer-for-of | https://typescript-eslint.io/rules/prefer-for-of |
✨ | typescript/prefer-function-type | https://typescript-eslint.io/rules/prefer-function-type |
✨ | typescript/prefer-literal-enum-member | https://typescript-eslint.io/rules/prefer-literal-enum-member |
✨ | typescript/prefer-namespace-keyword | https://typescript-eslint.io/rules/prefer-namespace-keyword |
✨ | typescript/triple-slash-reference | https://typescript-eslint.io/rules/triple-slash-reference |
typescript/unified-signatures | https://typescript-eslint.io/rules/unified-signatures |
✨ = Implemented, 🚫 = No need to implement
Not recommended rules
✨: 11, 🚫: 0 / total: 26
Status | Name | Docs |
---|---|---|
✨ | typescript/ban-ts-comment | https://typescript-eslint.io/rules/ban-ts-comment |
typescript/class-methods-use-this | https://typescript-eslint.io/rules/class-methods-use-this | |
✨ | typescript/consistent-type-imports | https://typescript-eslint.io/rules/consistent-type-imports |
✨ | typescript/default-param-last | https://typescript-eslint.io/rules/default-param-last |
✨ | typescript/explicit-function-return-type | https://typescript-eslint.io/rules/explicit-function-return-type |
typescript/explicit-member-accessibility | https://typescript-eslint.io/rules/explicit-member-accessibility | |
typescript/explicit-module-boundary-types | https://typescript-eslint.io/rules/explicit-module-boundary-types | |
typescript/init-declarations | https://typescript-eslint.io/rules/init-declarations | |
✨ | typescript/max-params | https://typescript-eslint.io/rules/max-params |
typescript/member-ordering | https://typescript-eslint.io/rules/member-ordering | |
typescript/method-signature-style | https://typescript-eslint.io/rules/method-signature-style | |
✨ | typescript/no-dupe-class-members | https://typescript-eslint.io/rules/no-dupe-class-members |
✨ | typescript/no-import-type-side-effects | https://typescript-eslint.io/rules/no-import-type-side-effects |
typescript/no-invalid-this | https://typescript-eslint.io/rules/no-invalid-this | |
typescript/no-loop-func | https://typescript-eslint.io/rules/no-loop-func | |
✨ | typescript/no-magic-numbers | https://typescript-eslint.io/rules/no-magic-numbers |
✨ | typescript/no-redeclare | https://typescript-eslint.io/rules/no-redeclare |
typescript/no-restricted-imports | https://typescript-eslint.io/rules/no-restricted-imports | |
typescript/no-restricted-types | https://typescript-eslint.io/rules/no-restricted-types | |
typescript/no-shadow | https://typescript-eslint.io/rules/no-shadow | |
typescript/no-unnecessary-parameter-property-assignment | https://typescript-eslint.io/rules/no-unnecessary-parameter-property-assignment | |
typescript/no-use-before-define | https://typescript-eslint.io/rules/no-use-before-define | |
✨ | typescript/no-useless-empty-export | https://typescript-eslint.io/rules/no-useless-empty-export |
typescript/parameter-properties | https://typescript-eslint.io/rules/parameter-properties | |
✨ | typescript/prefer-enum-initializers | https://typescript-eslint.io/rules/prefer-enum-initializers |
typescript/typedef | https://typescript-eslint.io/rules/typedef |
✨ = Implemented, 🚫 = No need to implement
Deprecated rules
✨: 4, 🚫: 0 / total: 6
Status | Name | Docs |
---|---|---|
✨ | typescript/no-empty-interface | https://typescript-eslint.io/rules/no-empty-interface |
✨ | typescript/no-loss-of-precision | https://typescript-eslint.io/rules/no-loss-of-precision |
typescript/no-type-alias | https://typescript-eslint.io/rules/no-type-alias | |
✨ | typescript/no-var-requires | https://typescript-eslint.io/rules/no-var-requires |
✨ | typescript/prefer-ts-expect-error | https://typescript-eslint.io/rules/prefer-ts-expect-error |
typescript/sort-type-constituents | https://typescript-eslint.io/rules/sort-type-constituents |
✨ = Implemented, 🚫 = No need to implement
Will type checking rules be considered for implementation at any point in time?
Have checked typescript/member-ordering
: not working yet. Just for status
Version: 0.2.6
I looked into typescript/no-confusing-non-null-assertion
, but I am not able to run the test. The test code does not seem to be valid JavaScript? Is oxc
maybe validating the test's JS code while typescript-eslint
is not?
× Cannot assign to this expression
╭─[no_confusing_non_null_assertion.tsx:1:2]
1 │ (a + b!) = c;
· ──────
╰────
I looked into
typescript/no-confusing-non-null-assertion
, but I am not able to run the test. The test code does not seem to be valid JavaScript? Isoxc
maybe validating the test's JS code whiletypescript-eslint
is not?× Cannot assign to this expression ╭─[no_confusing_non_null_assertion.tsx:1:2] 1 │ (a + b!) = c; · ────── ╰────
Just comment out the tests that raise an error.
Am I missing something or is the await-thenable rule missing from the list?
Am I missing something or is the await-thenable rule missing form the list?
It seems like we excluded all type checking rules from the recommended-type-checked list.
@Boshen Are there plans to eventually support type checking rules?
@Boshen Are there plans to eventually support type checking rules?
see https://github.com/oxc-project/oxc/issues/3105
Warning
This comment is maintained by CI. Do not edit this comment directly. To update comment template, see https://github.com/oxc-project/oxc/tree/main/tasks/lint_rules
This is tracking issue for
@typescript-eslint/eslint-plugin
.There are 67(+ 24 deprecated) rules.
- 9/39 recommended rules are remaining as TODO
- 18/28 not recommended rules are remaining as TODO
To get started, run the following command:
just new-typescript-rule <RULE_NAME>
Then register the rule in
crates/oxc_linter/src/rules.rs
and alsodeclare_all_lint_rules
at the bottom.Recommended rules
✨: 30, 🚫: 0 / total: 39 Status Name Docs ✨ typescript/adjacent-overload-signatures https://typescript-eslint.io/rules/adjacent-overload-signatures ✨ typescript/array-type https://typescript-eslint.io/rules/array-type ✨ typescript/ban-tslint-comment https://typescript-eslint.io/rules/ban-tslint-comment ✨ typescript/ban-types https://typescript-eslint.io/rules/ban-types typescript/class-literal-property-style https://typescript-eslint.io/rules/class-literal-property-style typescript/consistent-generic-constructors https://typescript-eslint.io/rules/consistent-generic-constructors ✨ typescript/consistent-indexed-object-style https://typescript-eslint.io/rules/consistent-indexed-object-style typescript/consistent-type-assertions https://typescript-eslint.io/rules/consistent-type-assertions ✨ typescript/consistent-type-definitions https://typescript-eslint.io/rules/consistent-type-definitions ✨ typescript/no-array-constructor https://typescript-eslint.io/rules/no-array-constructor ✨ typescript/no-confusing-non-null-assertion https://typescript-eslint.io/rules/no-confusing-non-null-assertion ✨ typescript/no-duplicate-enum-values https://typescript-eslint.io/rules/no-duplicate-enum-values ✨ typescript/no-dynamic-delete https://typescript-eslint.io/rules/no-dynamic-delete ✨ typescript/no-empty-function https://typescript-eslint.io/rules/no-empty-function ✨ typescript/no-empty-interface https://typescript-eslint.io/rules/no-empty-interface ✨ typescript/no-explicit-any https://typescript-eslint.io/rules/no-explicit-any ✨ typescript/no-extra-non-null-assertion https://typescript-eslint.io/rules/no-extra-non-null-assertion typescript/no-extraneous-class https://typescript-eslint.io/rules/no-extraneous-class typescript/no-inferrable-types https://typescript-eslint.io/rules/no-inferrable-types typescript/no-invalid-void-type https://typescript-eslint.io/rules/no-invalid-void-type ✨ typescript/no-loss-of-precision https://typescript-eslint.io/rules/no-loss-of-precision ✨ typescript/no-misused-new https://typescript-eslint.io/rules/no-misused-new ✨ typescript/no-namespace https://typescript-eslint.io/rules/no-namespace ✨ typescript/no-non-null-asserted-nullish-coalescing https://typescript-eslint.io/rules/no-non-null-asserted-nullish-coalescing ✨ typescript/no-non-null-asserted-optional-chain https://typescript-eslint.io/rules/no-non-null-asserted-optional-chain ✨ typescript/no-non-null-assertion https://typescript-eslint.io/rules/no-non-null-assertion ✨ typescript/no-this-alias https://typescript-eslint.io/rules/no-this-alias ✨ typescript/no-unnecessary-type-constraint https://typescript-eslint.io/rules/no-unnecessary-type-constraint ✨ typescript/no-unsafe-declaration-merging https://typescript-eslint.io/rules/no-unsafe-declaration-merging typescript/no-unused-vars https://typescript-eslint.io/rules/no-unused-vars ✨ typescript/no-useless-constructor https://typescript-eslint.io/rules/no-useless-constructor ✨ typescript/no-var-requires https://typescript-eslint.io/rules/no-var-requires ✨ typescript/prefer-as-const https://typescript-eslint.io/rules/prefer-as-const ✨ typescript/prefer-for-of https://typescript-eslint.io/rules/prefer-for-of ✨ typescript/prefer-function-type https://typescript-eslint.io/rules/prefer-function-type ✨ typescript/prefer-literal-enum-member https://typescript-eslint.io/rules/prefer-literal-enum-member typescript/prefer-namespace-keyword https://typescript-eslint.io/rules/prefer-namespace-keyword ✨ typescript/triple-slash-reference https://typescript-eslint.io/rules/triple-slash-reference typescript/unified-signatures https://typescript-eslint.io/rules/unified-signatures ✨ = Implemented, 🚫 = Not supported
Not recommended rules
✨: 10, 🚫: 0 / total: 28 Status Name Docs ✨ typescript/ban-ts-comment https://typescript-eslint.io/rules/ban-ts-comment typescript/class-methods-use-this https://typescript-eslint.io/rules/class-methods-use-this ✨ typescript/consistent-type-imports https://typescript-eslint.io/rules/consistent-type-imports ✨ typescript/default-param-last https://typescript-eslint.io/rules/default-param-last ✨ typescript/explicit-function-return-type https://typescript-eslint.io/rules/explicit-function-return-type typescript/explicit-member-accessibility https://typescript-eslint.io/rules/explicit-member-accessibility typescript/explicit-module-boundary-types https://typescript-eslint.io/rules/explicit-module-boundary-types typescript/init-declarations https://typescript-eslint.io/rules/init-declarations ✨ typescript/max-params https://typescript-eslint.io/rules/max-params typescript/member-ordering https://typescript-eslint.io/rules/member-ordering typescript/method-signature-style https://typescript-eslint.io/rules/method-signature-style ✨ typescript/no-dupe-class-members https://typescript-eslint.io/rules/no-dupe-class-members typescript/no-empty-object-type https://typescript-eslint.io/rules/no-empty-object-type ✨ typescript/no-import-type-side-effects https://typescript-eslint.io/rules/no-import-type-side-effects typescript/no-invalid-this https://typescript-eslint.io/rules/no-invalid-this typescript/no-loop-func https://typescript-eslint.io/rules/no-loop-func typescript/no-magic-numbers https://typescript-eslint.io/rules/no-magic-numbers ✨ typescript/no-redeclare https://typescript-eslint.io/rules/no-redeclare typescript/no-require-imports https://typescript-eslint.io/rules/no-require-imports typescript/no-restricted-imports https://typescript-eslint.io/rules/no-restricted-imports typescript/no-shadow https://typescript-eslint.io/rules/no-shadow typescript/no-unnecessary-parameter-property-assignment https://typescript-eslint.io/rules/no-unnecessary-parameter-property-assignment typescript/no-unused-expressions https://typescript-eslint.io/rules/no-unused-expressions typescript/no-use-before-define https://typescript-eslint.io/rules/no-use-before-define ✨ typescript/no-useless-empty-export https://typescript-eslint.io/rules/no-useless-empty-export typescript/parameter-properties https://typescript-eslint.io/rules/parameter-properties ✨ typescript/prefer-enum-initializers https://typescript-eslint.io/rules/prefer-enum-initializers typescript/typedef https://typescript-eslint.io/rules/typedef ✨ = Implemented, 🚫 = Not supported
Deprecated rules
✨: 1, 🚫: 0 / total: 24
Can we change command name here, it doesn't actually exist (it is ts instead of full typescript) @Boshen