1. 함수의 기본 선언 방법
function sum(a: number, b: number):number {
return a + b;
}
//함수의 반환 값에 타입을 정하지 않을 때는 void 사용
function sum(a: number, b: number):void {
return a + b;
}
2. 함수의 인자(Argument)
ts는 함수의 인자를 모두 필수 값으로 간주한다.
함수의 매개변수를 설정하면 undefined나 null이라도 인자로 넘겨야 한다.
컴파일러에서 정의된 매개변수 값이 넘어왔는지 확인한다. 정의된 매개변수 값만 받을 수 있고, 추가 인자는 받을 수 없다.
function sum(a: number, b: number): number {
return a + b;
}
sum(10, 20); // 30
sum(10, 20, 30); // error, too many parameters
sum(10); // error, too few parameters
만약 b에 인자를 넣어주었는데 사용할수도 사용하지 않을 수도 있다.
function sum(a: number, b?: number): number {
return a + b;
}
sum(10, 20); // 30
sum(10, 20, 30); // error, too many parameters
sum(10); // 10
3. 함수의 타입이 불확실할 경우 Narrowing을 사용한다.
function sum (x : number | string) {
if( typeof x === 'string') { //typeof로 x라는 변수의 타입을 확인함
return x + '3'
} else {
return x + 3
}
}
sum(2)
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/typeof
4. 확장성 있는 함수 Generic 함수로 사용하기
//기본 typeScript 함수
function sum( x: unknown[] ) {
retrun x[0]
}
let a = sum ([4,2]);
//값이 number로 나올것 같지만 nuknow로 지정해놓았기 때문에 number는 아님
//generic 함수 만들기
function sum<MyType>( x : MyType[] ) :MyType {
return x[0]
}
let a = sum<number>([4,2])
4-1. 타입을 제한하고 싶을때는 extends 문법을 사용하자.
function sum<MyType extends number>( x : MyType ) {
return x -1
}
let a = sum<number>(10);
extends 를 사용하게 되면 type 파라미터에 넣을 값을 제한할 수 있다.
참고자료
반응형
SMALL
'Script > TypeScript' 카테고리의 다른 글
[TypeScript] TypeScript 와 React 같이 사용하기 (0) | 2022.05.31 |
---|---|
[TypeScript] 타입 지정해보기 (0) | 2022.05.30 |
[TypeScript] 변수를 미리 정하기 어려울때(Union , any, unknown Type) (0) | 2022.05.30 |
[TypeScript] TypeScript에 대해 알아보고 사용해보기 (0) | 2022.05.30 |