46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
|
import _curry1 from "./internal/_curry1.js";
|
||
|
import _toString from "./internal/_toString.js";
|
||
|
/**
|
||
|
* Returns the string representation of the given value. `eval`'ing the output
|
||
|
* should result in a value equivalent to the input value. Many of the built-in
|
||
|
* `toString` methods do not satisfy this requirement.
|
||
|
*
|
||
|
* If the given value is an `[object Object]` with a `toString` method other
|
||
|
* than `Object.prototype.toString`, this method is invoked with no arguments
|
||
|
* to produce the return value. This means user-defined constructor functions
|
||
|
* can provide a suitable `toString` method. For example:
|
||
|
*
|
||
|
* function Point(x, y) {
|
||
|
* this.x = x;
|
||
|
* this.y = y;
|
||
|
* }
|
||
|
*
|
||
|
* Point.prototype.toString = function() {
|
||
|
* return 'new Point(' + this.x + ', ' + this.y + ')';
|
||
|
* };
|
||
|
*
|
||
|
* R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'
|
||
|
*
|
||
|
* @func
|
||
|
* @memberOf R
|
||
|
* @since v0.14.0
|
||
|
* @category String
|
||
|
* @sig * -> String
|
||
|
* @param {*} val
|
||
|
* @return {String}
|
||
|
* @example
|
||
|
*
|
||
|
* R.toString(42); //=> '42'
|
||
|
* R.toString('abc'); //=> '"abc"'
|
||
|
* R.toString([1, 2, 3]); //=> '[1, 2, 3]'
|
||
|
* R.toString({foo: 1, bar: 2, baz: 3}); //=> '{"bar": 2, "baz": 3, "foo": 1}'
|
||
|
* R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date("2001-02-03T04:05:06.000Z")'
|
||
|
*/
|
||
|
|
||
|
var toString =
|
||
|
/*#__PURE__*/
|
||
|
_curry1(function toString(val) {
|
||
|
return _toString(val, []);
|
||
|
});
|
||
|
|
||
|
export default toString;
|