typescript/consistent-generic-constructors Style
What it does
When constructing a generic class, you can specify the type arguments on either the left-hand side (as a type annotation) or the right-hand side (as part of the constructor call).
This rule enforces consistency in the way generic constructors are used.
Why is this bad?
Inconsistent usage of generic constructors can make the code harder to read and maintain.
Examples
Examples of incorrect code for this rule:
ts
const a: Foo<string> = new Foo();
const a = new Foo<string>(); // prefer type annotationExamples of correct code for this rule:
ts
const a = new Foo<string>();
const a: Foo<string> = new Foo(); // prefer type annotationConfiguration
This rule accepts one of the following string values:
"constructor"
Type arguments that only appear on the type annotation are disallowed.
"type-annotation"
Type arguments that only appear on the constructor are disallowed.
How to use
To enable this rule using the config file or in the CLI, you can use:
json
{
"rules": {
"typescript/consistent-generic-constructors": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
rules: {
"typescript/consistent-generic-constructors": "error",
},
});bash
oxlint --deny typescript/consistent-generic-constructorsVersion
This rule was added in v0.14.0.


