'How to use template literals of ES6 script

I have been trying to solve a template literal question on hackerrank. It works fine on my local IDE but giving error on Hackerrank IDE. Heres the code two add two number and to print the result using template literal.

const sum = () => {
  let a=1;
  let b=2;
  console.log(`The sum of ${a} and ${b} is ${a + b}`);
}
module.exports = {sum}

But it is producing the following error.

npm WARN [email protected] No repository field.

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):

npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

audited 522 packages in 6.264s

found 611 vulnerabilities (378 low, 233 high)

  run `npm audit fix` to fix them, or `npm audit` for details

> [email protected] test /projects/challenge

> mocha test --reporter mocha-junit-reporter

The sum of 1 and 2 is 3

npm ERR! Test failed.  See above for more details.


Solution 1:[1]

I would like to add my view.

const sum = (a,b) => {
  return `The sum of ${a} and ${b} is ${a + b}`;
};
module.exports = {sum}

Semicolons are important in these type of code

Solution 2:[2]

Here's a simple example.

const sum = (a = 1, b = 2) => {
    return `The sum of ${a} and ${b} is ${a + b}`;
}

Here's the explanation.

const sum =          Create a variable named `sum`.
(a = 1, b = 2) => {  Create an arrow function, with variables `a` and `b`, with defaults of 1 and 2 respectively.
return `             Return a string. In addition to " and ', a backtick will create a string, but with benefits!
${a}                 Interpolate the variable `a` into the string.
${b}                 Interpolate the variable `b` into the string.
${a + b}             Interpolate the expression of `a + b`.
`;                   End the string.

Here's an example of what the code would look like without interpolation.

const sum = (a = 1, b = 2) => {
    return 'The sum of ' + a + ' and ' + b + ' is ' + (a + b);
}

Solution 3:[3]

const sum = (a, b) => { return( The sum of ${a} and ${b} is ${a+b} ); }

Solution 4:[4]

A template literal is used to interpolate values into strings without concatenating.

Here is an example of how to interpolate parameters a and b into a string:

const sum = (a, b) => {
   return `The sum of ${a} and ${b} is ${a+b}`;
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 JideGuru
Solution 2 JustCarty
Solution 3 SAJAHAN KHAN
Solution 4 Undo