Skip to content

快速开始

简介

Melange 是一个现代化的 JavaScript/TypeScript 工具库,提供函数式编程模式、面向对象工具和完整的类型支持。

安装

bash
npm install melange
bash
yarn add melange
bash
pnpm add melange

基本使用

导入整个库

typescript
import * as melange from 'melange';

// 使用函数组合
const result = melange.pipe(
  5,
  (x) => x * 2,
  (x) => x + 1
);
console.log(result); // 11

按需导入

typescript
// 导入特定模块
import { pipe, compose, curry } from 'melange/fp';
import { debounce, throttle, deepClone } from 'melange/utils';
import { EventEmitter, Container } from 'melange/core';
import { speak, listen } from 'melange/plugins';

模块概览

模块描述导入路径
FP函数式编程工具melange/fp
Utils实用工具函数melange/utils
Core核心 OOP 工具melange/core
Plugins扩展插件melange/plugins

快速示例

函数组合

typescript
import { pipe, compose } from 'melange/fp';

// 使用 pipe(从左到右)
const addOne = (x: number) => x + 1;
const double = (x: number) => x * 2;

const result = pipe(5, addOne, double);
console.log(result); // 12

// 使用 compose(从右到左)
const fn = compose(double, addOne);
console.log(fn(5)); // 12

Result 类型处理错误

typescript
import { tryCatch, mapResult, matchResult } from 'melange/fp';

const divide = (a: number, b: number) => {
  if (b === 0) throw new Error('除数不能为零');
  return a / b;
};

const result = tryCatch(() => divide(10, 2));

matchResult(result, {
  ok: (value) => console.log('结果:', value), // 结果: 5
  err: (error) => console.log('错误:', error.message),
});

防抖和节流

typescript
import { debounce, throttle } from 'melange/utils';

// 防抖:延迟执行,在停止触发后才执行
const debouncedFn = debounce(() => {
  console.log('搜索...');
}, 300);

// 节流:限制执行频率
const throttledFn = throttle(() => {
  console.log('滚动处理...');
}, 100);

语音合成

typescript
import { speak, createSpeechSynthesizer } from 'melange/plugins';

// 快速朗读
await speak('你好,世界!');

// 高级用法
const synthesizer = await createSpeechSynthesizer({
  lang: 'zh-CN',
  rate: 1.0,
});
await synthesizer.speak('这是一段测试文本');
synthesizer.dispose();

下一步

基于 MIT 许可发布