关于javascript:Ramda可以使用isString吗?

Can Ramda have isString?

背景

我试图使用ramda,我需要一个纯函数,它可以让我知道给定的输入是否是字符串,就像lodash _.isString

问题

在到处寻找之后,我在拉姆达找不到任何关于这个的东西。所以我想知道,有没有一种方法,利用Ramda现有的任何函数,我可以创建一个isString函数?

我发现这是一个可怕的限制,是不是不可能,我可能只是在最后:s


Ramda不提供isStringisObjectisArrayisFunction等,而是简单地提供is,您可以使用它来创建任何您喜欢的:

1
2
3
4
5
6
7
8
9
const isString = R.is(String)
const isRectangle = R.is(Rectangle)

isString('foo') //=> true
isString(42) //=> false

isRectangle(new Rectangle(3, 5)) //=> true
isRectangle(new Square(7)) //=> true (if Rectangle is in the prototype chain of Square)
isRectangle(new Triangle(3, 4, 5)) //=> false

你不需要创建中间函数。您可以按原样使用它:

1
2
R.is(String, 'foo') //=> true
R.is(String, {a: 'foo'}) //=> false


这也适用于R.type(x) ==="String"