refactor: extract inline type definitions

This commit is contained in:
Michel Jonathan Schmitz
2019-02-07 10:56:18 +01:00
parent 06f8e1f436
commit 01a1d40f11
13 changed files with 335 additions and 122 deletions

45
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,45 @@
# Contributing to `@openstapps/core`
Please see the appropriate general group contributing guides in [project-management](https://gitlab.com/openstapps/projectmanagement/tree/master/project-docs/workflow).
## Additional coding style
### Extract inline type definitions
For consistency and correct functionality of `core-tools` we need well-defined type assignments.
Type assignments shall always be primitive types, classes, interfaces, enums or unions. Not allowed are inline type-definitions. Those shall be refactored accordingly:
```typescript
export interface SCPlaceWithoutReferences extends SCThing {
...
// Use this:
geo: SCGeoInformation;
// Instead of:
geo: {
point: Point,
polygon?: Polygon,
};
}
```
### Reuse the map structure
If you come around a map-like-type use `SCMap<T>`.
```typescript
// Use this:
interface AnyClass{
inventory: SCMap<number>;
}
// Instead of:
interface AnyClass{
inventory?: Array<{ key: string, value: number }>;
}
// or instead of
interface AnyClass{
inventory?: { [key: string]: number };
}
```