助推键
Boost是TypeScript编程语言的库集,旨在增强它跨越多个领域的能力. 这些库提供了广泛的功能,使开发者能够充分利用TypeScript的全部潜力并精简他们的开发过程. 有了"Boost",TypeScript开发者可以高效地处理复杂的任务,改善代码可读性,以及可维护性,同时也能从先进特性和最佳做法中受益.
可用的图书馆
- 匹配模式
- 可选模式
安装
npm i @expressots/boost-ts
匹配模式使用
- 使用 enums 匹配模式
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
- 使用数字匹配模式
let isNumber: number = 1;
const result = match(isNUmber, {
1: () => 1,
2: () => 2,
"_": () => "No number found"
});
console.log(result); // 1
- 使用布尔匹配模式
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
- 使用可选模式的匹配模式
import { Some, None, Optional, matchOptional } from "./optional-pattern";
import { match } from "./match-pattern";
const v1: Optional<number> = Some(1);
const v2: Optional<number> = None();
const result = match(v1, {
Some: (x) => x + 1,
None: 0,
});
console.log(result); // 2
- 其他可能的组合
- "表达..=表达" - > 数字或字符
- "是:这个是另一个"
- "礼":"/[a-z]/"
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
可选模式使用
const someValue: Optional<number> = Some(1);
function plusOne(x: Optional<number>): number {
return match(x, {
Some: (x) => x + 3,
None: 0,
})
}
console.log(plusOne(None())); // 0
捐款
欢迎拉动请求。 对于重大变动,请先开出一个问题来讨论你想要改变什么.
请确保酌情更新测试.
