Expressots: Boost is a collection of libraries for the TypeScript programming language designed to enhance its capabilities across various domains. (@boost-ts)
npm install @expressots/boost-tsbash
npm i @expressots/boost-ts
`
Match Pattern Usage
- Using Match pattern with enums
`typescript
import { match } from "./match-pattern";
const enum Coin {
Penny,
Nickel,
Dime,
Quarter
}
function valueInCents(coin: Coin): number {
return match(coin, {
[Coin.Penny]: () => 1,
[Coin.Nickel]: () => 5,
[Coin.Dime]: () => 10,
[Coin.Quarter]: () => 25,
})
}
console.log(valueInCents(Coin.Penny)); // 1
`
- Using Match pattern with numbers
`typescript
let isNumber: number = 1;
const result = match(isNUmber, {
1: () => 1,
2: () => 2,
"_": () => "No number found"
});
console.log(result); // 1
`
- Using Match pattern with boolean
`typescript
let isOn: boolean = true;
const result = match(isOn, {
true: () => "The light is on",
false: () => "The light is off",
});
console.log(result); // The light is off
`
- Using Match pattern with Optional pattern
`typescript
import { Some, None, Optional, matchOptional } from "./optional-pattern";
import { match } from "./match-pattern";
const v1: Optional = Some(1);
const v2: Optional = None();
const result = match(v1, {
Some: (x) => x + 1,
None: 0,
});
console.log(result); // 2
`
- Other possible combinations
- "expressions..=expressions" -> numbers or characters
- "isOr: this | that | other"
- "Regex: "/[a-z]/"
`typescript
const result = match("a", {
"1..=13": () => "Between 1 and 13",
"25 | 50 | 100": () => "A bill",
"a..=d": () => "A letter",
"/[a-z]/": () => "A lowercase letter",
"_": () => "Default",
});
console.log(result); // A letter
`
Optional Pattern Usage
`typescript
const someValue: Optional = Some(1);
function plusOne(x: Optional): number {
return match(x, {
Some: (x) => x + 3,
None: 0,
})
}
console.log(plusOne(None())); // 0
``