DiamondLightSource / DiamondLightSource/cs-web-lib

Improve usability for various classes

Open
#36 0 comments 0 reactions 0 assignees View on GitHub
enhancement priority:3
Dominant language
TypeScript
Stars
5
Forks
4
Avg merge
3d 59m
Merged PRs (30d)
3

Description

I came across a minor annoyance when working with the `RelativePosition` class. It has a fairly long list of arguments, and while they are all defaulted there's no way to declare just e.g. the last variable without also defining all of them so, if you want to specify a `minHeight` (the final parameter in the list) you have to do something like this:
```
new RelativePosition("100%", "100%", "0px", "0px", "0px", "0px", "0px")
```

An alternative design pattern is to use an object for the inputs. The object can be defined with defaults, and would then allow calling the function like this:

```
new RelativePosition({minHeight: "0px"})
```

And all other variables become defaulted.

I imagine this pattern may be useful in many places across the codebase.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.