-
TypeScript #3 함수공부/TypeScript 2021. 6. 24. 14:27
타입스크립트 함수
: 타입스크립트에서는 타입을 정의할 수 있다
- 함수의 파라미터(매개변수)
- 함수의 반환 타입
- 함수의 구조 타입
함수 선언
function sum(a: number, b: number): number { return a + b }
-> 함수의 매개변수와, 반환 값에 타입을 추가
-> 반환 값에 타입을 정하지 않을 때 : void 사용함수의 인자
매개 변수
- 타입스크립트에서는 함수의 인자를 모두 필수 값으로 간주한다
- 매개 변수를 설정하면 undefined 나 null 이라도 넘겨야한다
- 컴파일러에서 값이 넘어왔는지 확인하기 때문
-> 정의된 매개변수 값만 받을 수 있고 추가로 인자를 받을 수 없다 function sum(a: number, b: number): number { return a + b } sum(10, 20) sum(10, 20, 30) // Error sum(10) // Error
선택 매개 변수
- 변수명 뒤에 ' ? ' 를 붙인다
- 선택 매개 변수로 지정한 변수는 생략 가능
- 선택 매개 변수는 초기 값을 사용할 수 없다
function sum(a: number, b?: number): number { return a + b }
undefined 로 에러 표시가 날 때
- tsconfig.json 파일에서 추가한다
"strictNullChecks": false
매개 변수에 초기 값을 주기
function sum(a: number, b = 100): number { return a + b }
전개 연산자를 사용해서 매개 변수 전달
function sum(a: number, ...nums: number[]): number { let total = 0 for(let i in nums) { total += nums[i] } return a + total }
함수 오버로드
함수명은 같지만 매개변수와 반환 타입이 다른 함수를 여러개 선언하는 것
컴파일시 가장 적합한 오버로드를 선택해서 컴파일 한다 -> 런타임 비용이 발생하지 않는다
목록 형태로 선언
모든 타입이 any 인것은 맨 아래에 선언한다
function sum(a: string, b: string): string function sum(a: number, b: number): number function sum(a: number, b: string): number function sum(a: any, b: any): any { return a + b }
function sum(a: string, b: string): string function sum(a: number, b: number): number function sum(a: number, b: string): number function sum(a: number): number function sum(a: any, b?: any): any { if (b === undefined) { return a } else { return a + b } }
반응형'공부 > TypeScript' 카테고리의 다른 글
TypeScript #2 (0) 2021.06.24 TypeScript #1 (0) 2021.06.24