1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-09 00:18:00 +01:00
unleash.unleash/website/docs/contributing/frontend/ADR/interface-naming.md
2022-10-05 10:29:33 +02:00

22 lines
784 B
Markdown

# ADR: Interface naming
## Background
In the codebase, we have found a need to have a common way of naming interfaces in order to ensure consistency.
## Decision
We have decided to use a naming convention of appending the letter `I` in front of interfaces to signify that we are in fact using an interface. For props, we use `IComponentNameProps`.
```jsx
// Do:
interface IMyInterface {}
interface IMyComponentNameProps {}
// Don't:
interface MyInterface {}
interface MyComponentName {}
```
The reason for this decision is to remove mental clutter and free up capacity to easily navigate the codebase. Knowing that an interface is prefixed with `I` allows you to quickly scan a file without watching for a context where the interface is used in order to understand what it is.