javascript 라면 그냥 사용하면 되는데, typescript 일 경우 아무 생각 없이 사용하면 다음과 같은 에러가 발생한다.
A spread argument must either have a tuple type or be passed to a rest parameter
function getObj(name: string, age: number) {
return {
name,
age,
};
}
// 해결방안 1) as const를 사용하여 배열을 튜플(tuple)로 만든다.
const result = getObj(...(['Bobby Hadz', 30] as const));
// 해결방안 2) 인수를 선언하는 시점에 아예 튜플로 만든다.
const myTuple: [string, number] = ['Bobby Hadz', 30];
const result = getObj(...myTuple);
// 해결방안 3) 함수정의를 아예 rest parameters 형식으로 한다. (java의 variable arguments 처럼)
function getArr(...args: string[]) {
return args;
}
const result = getArr(...['James', 'Alice', 'Bobby Hadz', 'Carl']);