
이번 시간에는 array 자료에 붙일 수 있는 tuple type 에 대해서 알아보도록 하겠습니다.
let dog: (string | boolean)[] = ["dog", true]; // tuple type X
let dog: [string, boolean] = ["dog", true]; // tuple typx Olet dog: [string, boolean?, number] = ["dog", true]; // 필수 요소는 선택적 요소 뒤에 올 수 없습니다.ts(1257)function practice(...x: [number, string]) {
console.log(x);
}
practice(1, "hello");let arr = [1, 2, 3];
let arr2: [number, number, ...number[]] = [4, 5, ...arr];let arr: [string, number, boolean] = ["오예스", 4000, true];let arr = ["오예스", 4000, true, false, true, true, false, true];let arr: [string, number, ...boolean[]] = [
"오예스",
4000,
true,
false,
true,
true,
false,
true,
];함수의 첫째 파라미터는 문자
둘째 파라미터는 boolean
셋째 파라미터부터는 숫자 또는 문자
function practice(...rest: [string, boolean, ...(number | string)[]]) {}
파라미터 중 문자만 모아서 [ ] 에 담아주고, 숫자만 모아서 [ ] 에 담아준다.
문자 숫자 외의 자료는 입력 불가능하고, 파라미터 갯수 제한은 없다.
function practice(...rest: (string | number)[]) {
let result: [string[], number[]] = [[], []];
rest.forEach((item) => {
if (typeof item === "string") {
result[0].push(item);
} else {
result[1].push(item);
}
});
return result;
}
지금까지 array 자료에 붙일 수 있는 tuple type 에 대해서 알아보았습니다. 다음 시간에는 외부 파일 이용시의 declare 와 이상한 ambient module 에 대해서 알아보도록 하겠습니다.
(본 포스팅은 코딩애플(Coding Apple)의 '빠르게 마스터하는 타입스크립트' 강의 내용을 바탕으로 학습하며 정리한 글입니다.)