References:
- https://codeburst.io/javascript-es6-the-spread-syntax-f5c35525f754
- https://www.typescriptlang.org/docs/handbook/functions.html
- https://oprea.rocks/blog/what-do-the-three-dots-mean-in-javascript/