Skip to content

Commit 9e337a0

Browse files
committed
update docusaurus
1 parent b9ec02a commit 9e337a0

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

website/src/pages/index.mdx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ Style Guide assumes using, but is not limited to:
5555

5656
- Embrace const assertions. [⭣](#const-assertion)
5757
- Strive for data immutability (`Readonly`, `ReadonlyArray`). [⭣](#data-immutability)
58+
- Majority of object properties should be required (use optional sparingly). [⭣](#required--optional-object-properties)
5859
- Embrace discriminated unions. [⭣](#discriminated-union)
59-
- Majority of function arguments should be required (use optional sparingly). [⭣](#required--optional-args)
6060
- Avoid type assertions. [⭣](#type--non-nullability-assertions)
6161
- Strive for functions to be pure, stateless and have single responsibility. [⭣](#functions)
6262
- Strong emphasis to keep naming conventions consistent and readable. [⭣](#naming-conventions)
@@ -182,7 +182,7 @@ type GuestUser = {
182182
temporaryToken: string;
183183
};
184184

185-
// Discriminating union type 'User' with no optional properties
185+
// Discriminated union type 'User' with no optional properties
186186
type User = AdminUser | RegularUser | GuestUser;
187187
```
188188

@@ -195,7 +195,7 @@ You may encounter discriminated unions under different names such as tagged unio
195195

196196
Discriminated unions advantages:
197197

198-
- As mentioned in [Args as Discriminated Union](#args-as-discriminated-union), discriminated union eliminates optional object properties which decreases complexity on function API.
198+
- As mentioned in [Required & Optional Object Properties](#required--optional-object-properties), [Args as Discriminated Union](#args-as-discriminated-type) and [Props as Discriminated Type](#props-as-discriminated-type), discriminated union eliminates optional object properties which decreases complexity.
199199
- Exhaustiveness check - TypeScript can ensure that all possible variants of a type are implemented, eliminating the risk of undefined or unexpected behavior at runtime. ([eslint rule](https://typescript-eslint.io/rules/switch-exhaustiveness-check/))
200200

201201
```ts
@@ -442,7 +442,7 @@ transformUserInput({
442442
If the function becomes too complex, it probably should be broken into smaller pieces.
443443
An exaggerated example where implementing 10 functions with 5 required args each, is better then implementing one "can do it all" function that accepts 50 optional args.
444444
445-
### Args as Discriminated Union
445+
### Args as Discriminated Type
446446
447447
When applicable use **discriminated union type** to eliminate optional properties, which will decrease complexity on function API and only required properties will be passed depending on its use case.
448448
@@ -473,6 +473,7 @@ type StatusErrorParams = {
473473
error: string;
474474
};
475475

476+
// Discriminated function param 'StatusParams' with no optional properties
476477
type StatusParams = StatusSuccessParams | StatusLoadingParams | StatusErrorParams;
477478

478479
export const parseStatus = (params: StatusParams) => {...
@@ -1003,6 +1004,7 @@ type StatusError = {
10031004
error: string;
10041005
};
10051006

1007+
// Discriminated component props 'StatusProps' with no optional properties
10061008
type StatusProps = StatusSuccess | StatusLoading | StatusError;
10071009

10081010
export const Status = (status: StatusProps) => {...

0 commit comments

Comments
 (0)