To use any of these rules, you need to install the package:
pnpm add -D @lucasols/eslint-plugin-extended-lint
And then configure it in your eslint config:
{
"plugins": ["@lucasols/extended-lint"],
"rules": {
"@lucasols/extended-lint/no-unused-type-props-in-args": "error"
}
}
Checks if there are unused type props in function arguments.
Examples
Bad
function foo({ a }: { a: string; b: string }) {
/* ^ b is declared but not used in the function */
// ...
}
Good
function foo({ a, b }: { a: string; b: string }) {
// ...
}
It will also work with the react FC
type:
Bad
const Foo: FC<{ a: string; b: string }> = ({ a }) => {
/* ^ b is declared but not used in the component */
// ...
}
Good
const Foo: FC<{ a: string; b: string }> = ({ a, b }) => {
// ...
}
- This rule will not work in all situations, as it does not checks all possible usages of referenced types.
Checks if there are commented code. Block comments are ignored.
Examples
Bad:
// function foo() {
// // ...
// }
Good:
/*
function foo() {
// ...
}
*/
- This rule will not detect all possible commented code, and can give false negatives.
This rule disallows calling functions with inferred generics.
The rule options types are as follows:
type Options = [
{
functions: Array<{
name: string;
minGenerics?: number;
allowAny?: boolean;
disallowTypes?: string[];
}>;
anyAliases?: string[];
}
];
Examples:
Bad:
```ts
// @typescript-eslint/no-call-with-inferred-generics: ["error", { functions: ["foo"] }]
function foo<T>(arg: T) {
// ...
}
foo('bar') // Error: Generics must be defined explicitly
foo<any>('bar') // Error: 'any' is not allowed in generics
Good:
// @typescript-eslint/no-call-with-inferred-generics: ["error", { functions: ["foo"] }]
function foo<T>(arg: T) {
// ...
}
foo<string>('bar') // OK
A fork of the eslint-plugin-react-hooks
rules-of-hooks
rule, but with the following changes:
- Identifies hooks in camelCase namespaced functions (e.g.
test.useFoo()
)