나머지 매개변수 인수를 여러 개 받는 함수라면 그 목록을 배열 형태로 건넬 수 있습니다. function sum(numbers: number[]): number { return numbers.reduce((total, n) => total + n, 0) } sum([2, 4, 6)] // 12로 평가 때로는 인수의 개수가 고정된 고정 인자 API가 아니라 인수의 개수가 달라질 수 있는 가변 인자 API가 필요할 때도 있습니다. 전통적으로 JavaScript는 마법 같은 arguments 객체를 통해 해당 기능을 제공했습니다. JavaScript 런타임이 함수에 자동으로 arguments를 정의해 개발자가 함수로 전달한 인수 목록을 할당한다는 점은 마법 같은 일입니다. arguments는 일종의 순수한 배..
선택적 매개변수와 기본 매개변수 객체와 튜플 타입에서처럼 함수에서도 ?를 이용해 선택적 매개변수를 지정할 수 있습니다. 함수의 매개변수를 선언할 때 필수 매개변수를 먼저 지정하고 선택적 매개변수를 뒤에 추가합니다. function log(message: string, userName?: string){ let time = new Date().toLocaleTimeString() console.log(time, message, userName || '뭐... 읎는데...') } log('페이지 로딩됨') // "17:07:22 PM 페이지 로딩됨 뭐... 읎는데..." 출력 log('유저 들어옴', 'cozyLinda') // "17:09:10 PM 유저 들어옴 cozyLind" 출력 JavaScript에..
함수 선언과 호출 JavaScript에서 함수는 first-class 객체입니다. 즉, 객체를 다루듯이 함수를 변수에 할당하거나, 함수를 다른 함수로 전달하거나, 함수에서 함수를 반환하거나, 객체와 프로토타입에 할당하거나, 함수에 프로퍼티를 기록하거나, 함수에 기록된 프로퍼티를 읽는 등의 작업을 할 수 있습니다. JavaScript에서 함수로 할 수 있는 일이 정말 많은 덕분에 TypeScript도 이 모든 것을 자신의 타입 시스템에 녹여낼 수 있었습니다. 다음은 TypeScript 예제입니다. function add(a: number, b: number){ return a + b } 보통 함수 매개변수의 타입은 명시적으로 정의합니다. TypeScript는 항상 함수의 본문에서 사용된 타입을 추론하지만 ..
열거형(enum) 열거형(enum)은 해당 타입으로 사용할 수 있는 값을 열거하는 기법입니다. 열거형은 키를 값에 할당하고 순서가 없는 자료구조입니다. 따라서 TypeScript는 키에 접근할 때 주어진 키가 실제 존재하는지 확인할 수 있습니다. 문자열에서 문자열로 매핑하거나 문자열에서 숫자로 매핑하는 열거형, 이렇게 두 가지가 있습니다. 아래의 예시는 열거형의 예입니다. enum Language { English, Spanish, Korean } 열거형의 이름은 단수 명사로 쓰고, 첫 문자는 대문자로 하는 것이 관례입니다. 키도 앞 글자를 대문자로 표시합니다. TypeScript는 자동적으로 열거형의 각 멤버에 적절한 숫자를 추론해 할당하지만, 값을 명시적으로 설정할 수도 있습니다. TypeScript..