我对这篇文章有很多想法,但我不知道从哪里开始。如果您有兴趣使代码更具可读性并使用 Tree Shaking,您绝对应该查看这篇文章。
如果您曾经使用 JavaScript 进行开发,您可能遇到过这种类型的代码。
const someInstance = new Class(); someInstance.do('jump').some().thing('dance').and().read();
我喜欢这种风格,因为它很容易阅读,并且你可以看到其中的联系。另外,您不必将数据从一个函数移动到另一个函数,因为它全部保存在实例中。
除了这仅在函数不异步时才有效这一事实之外,还有另一个问题。如果您不使用内容,那么对内容进行 Tree shake 并不容易。如果你在客户端使用它,你必须移动整个库以及所有连接的函数,这是一个巨大的开销。
那么,我们如何保持内容的可读性,使用异步函数并让 Vite 和 co.树摇所有未使用的代码?
答案就在标题中:“管道”。
从功能的角度来看,实现管道非常简单。然而,这些类型确实带来了挑战。我已将所有内容整合到一个库中并将其发布到 npm 上。管道并组合。
const inc = (by: number) => (x: number) => x + by; const dec = (by: number) => (x: number) => x - by; const multiplyBy = (by: number) => (x: number) => x * by; const divideBy = (by: number) => (x: number) => x / by; const toStr = () => (x: number) => x.toString(); // prepare the pipeline const pipeline = pipe(inc(2), multiplyBy(7), dec(7), divideBy(3), toStr()) // Executing the pipeline pipeline(7)
一个优点是它不绑定到任何对象,因此只要输入和输出与之前和之后的函数匹配即可使用任何函数。
我给出的示例非常简单,但至少您可以通过管道传输所有内容。您将拥有与链接和类相同的选项。泛型函数可能有点棘手,但有一个解决方案。我将在另一篇文章中更详细地介绍这一点。
以上是管管屎的详细内容。更多信息请关注PHP中文网其他相关文章!