This shows that even though JavaScript can enable a functional programming style (to a certain extent), JavaScript isn't a functional language.
I think what you have is good enough already. At this point the best you can do is try expressing your intent as clearly as possible (but of course YMMV):
const add = (a, b) => a + b;
const sum = (...xs) => xs.reduce(add, 0);
sum(40, 1, 1);
// 42
JavaScript isn't a functional language?!
Well that's just my opinion of course but unlike other languages such as Clojure or Haskell, in JavaScript + isn't a function but an operator meaning that you cannot assign it to a variable or pass it as a parameter.
In Haskell you can add two numbers as follow:
40 + 2
It may seem that + is an operator but it is actually an (infix) function that you can pass as a parameter and partially apply:
foldl (+) 0 [40, 1, 1]
-- 42
map (+ 10) [40, 1, 1]
-- [50, 11, 11]
In Clojure you can add two numbers as follow
(+ 40 2)
; 42
However in Clojure too + is actually a function:
(reduce + 0 '(40 1 1))
; 42
However this isn't necessary as + works with a list of numbers anyway:
(+ 40 1 1)
; 42
(+ 39 1 1 1)
; 42
(+ 38 1 1 1 1)
; 42