# no-useless-constructor

Disallow constructors that only repeat implicit construction behavior

An empty public constructor with the implicit signature performs the same initialization as an omitted constructor.
Instead, you SHOULD remove the constructor.

Constructors that change visibility, parameters, decorators, or initialization behavior remain meaningful.

- Category: suspicious
- Level: warning
- Fix: automatic
- Scope: module

## Reported

```ds title="main.ds"
class Token {
    constructor() {}
}
```

## Accepted

```ds title="main.ds"
class Token {
}
```

## Prior art

- [ESLint · no-useless-constructor](https://eslint.org/docs/latest/rules/no-useless-constructor)
- [typescript-eslint · no-useless-constructor](https://typescript-eslint.io/rules/no-useless-constructor)

[language/linter/src/rules/suspicious/no_useless_constructor.rs:7](https://github.com/destack-sh/destack/blob/main/language/linter/src/rules/suspicious/no_useless_constructor.rs#L7)
