首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: R.unless不是函数

TypeError: R.unless不是函数
EN

Stack Overflow用户
提问于 2021-06-24 23:32:32
回答 1查看 52关注 0票数 0

我有一个函数,看起来像这样:

代码语言:javascript
复制
export const maybeDate = R.unless(R.isNil, R.constructN(1, Date));

Typescript在这方面从来没有给我带来困难,但是当我通过Jest运行它的时候,我得到了这条消息,关于哪里出了问题却没有反馈:

代码语言:javascript
复制
TypeError: R.unless is not a function

当我将它更改为以下代码时,它就会停止给我带来问题:

代码语言:javascript
复制
export const maybeDate = () => R.unless(R.isNil, R.constructN(1, Date));

然而,我的应用程序本身停止工作。

回到ramda的github,有人建议我这样做

代码语言:javascript
复制
export const maybeDate = (v) => R.unless(R.isNil, R.constructN(1, Date))(v);

但这感觉更像是一种变通方法(就像我的糟糕的非工作解决方案一样),而不是解决方案。

解决这个问题的最好方法是什么?

目前我只安装了以下内容:

"ramda":"^0.27.1“

EN

回答 1

Stack Overflow用户

发布于 2021-06-25 00:00:33

如您所见,Ramda 0.27.1具有unless方法。

代码语言:javascript
复制
const isEven = (n) => n % 2 === 0;

const shoutOdds = R.unless(isEven, console.log.bind(null, 'this "%s" looks odd'));

shoutOdds(5);
shoutOdds(10); // not called
shoutOdds(7);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.27.1/ramda.js" integrity="sha512-3sdB9mAxNh2MIo6YkY05uY1qjkywAlDfCf5u1cSotv6k9CZUSyHVf4BJSpTYgla+YHLaHG8LUpqV7MHctlYzlw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

如果您使用es模块,请确保以以下方式导入ramda的名称空间:import * as R from 'ramda'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68118686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档