# no-static-only-class

Disallow classes containing only static members

A class containing only static members uses an instance-bearing declaration as a module namespace.
Instead, you SHOULD declare its constants, functions, and types directly in the source module.

Inheritance may supply instance behavior, so derived classes retain their declaration.

- Category: style
- Level: warning
- Fix: none
- Scope: module

## Reported

```ds title="main.ds"
class MathHelper {
    static double(value: int32): int32 {
        return value * 2;
    }
}
```

## Accepted

```ds title="main.ds"
function double(value: int32): int32 {
    return value * 2;
}
```

## Prior art

- [eslint-plugin-unicorn · no-static-only-class](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-static-only-class.md)

[language/linter/src/rules/style/no_static_only_class.rs:6](https://github.com/destack-sh/destack/blob/main/language/linter/src/rules/style/no_static_only_class.rs#L6)
