首页 > 解决方案 > 打字稿-在语法上“在”参数之间起作用

问题描述

一些函数式编程语言提供了在“参数之间”内联调用函数的能力。我不知道此功能的正确术语(如果我知道,我可以进行更好的搜索:D),但希望以下内容很清楚..

假设我定义了一个“添加”函数:

const add = (a,b) => a+b;

出于这个问题范围之外的原因(我不是来讨论编码风格的,这里有一个合法的用例,我保证),我希望能够像这样调用这个函数:

const result = 1 add 3;

对于我显然比上面更复杂的情况,这种语法糖会非常好吃。打字稿可以吗?某些语言中允许的上述行为的正确术语/名称是什么?

标签: typescriptfunctional-programming

解决方案


这方面的术语是“中缀函数”,不,这在 TS 中基本上是不可能的。

Typescript 是 Javascript 之上的一个非常薄的层:除了少数例外,它只支持 Javascript 支持的语法以及类型注释。

并且 Javascript 没有中缀函数,所以 Typescript 也没有。


唯一可行的方法是使用TS 转换器,它本质上是编写一个自定义转换器插件,将代码转换为正常的 Typescript 语法。

但这些都很脆弱,支持得不是很好,所以我个人不建议将它用于这样的语法糖用例。


推荐阅读