sort-construct-signature
Require construct signatures to be the first member in interfaces.
Targeted pattern scopeโ
This rule targets TSConstructSignatureDeclaration nodes that are not the
first child in an interface body.
What this rule reportsโ
This rule reports interface construct signatures when they are not the first member in the interface body.
Why this rule existsโ
Putting construct signatures first gives constructor-like interfaces a predictable shape.
โ Incorrectโ
interface I {
x: string;
new (): string;
}
โ Correctโ
interface I {
new (): string;
x: string;
}
Behavior and migration notesโ
This rule reports only and does not provide an autofix.
Migration is mechanical: move construct signatures above other interface members.
Optionsโ
This rule has no options.
Additional examplesโ
interface Factory {
id: string;
new (): FactoryInstance;
}
// โ construct signature is not first
interface FactoryFixed {
new (): FactoryInstance;
id: string;
}
// โ
valid
ESLint flat config exampleโ
import etcMisc from "eslint-plugin-etc-misc";
export default [
{
plugins: { "etc-misc": etcMisc },
rules: {
"etc-misc/sort-construct-signature": "error",
},
},
];
When not to use itโ
Disable this rule if interface member order is not important in your style guide.
Package documentationโ
Rule catalog ID: R068
Further readingโ
Adoption resourcesโ
- Start at warning level in CI, then move to error after cleanup.
- Use focused codemods/autofix batches per package or directory.