* 본 포스팅은 필자가 개인적으로 학습한 내용정리 및 리뷰를 위해 포스팅합니다.
function 함수(x :number) :number {
return x + 1
}
함수('2') X
▲ 함수는 파라미터, return 값을 타입지정 할 수 있다.(number로 지정했기에 문자를 넣으면 오류!!
function 함수(x :number) :void {
1 + 2
}
▲ 함수에서 void 타입 활용 가능(return을 사전에 막을 수 있음)
function 함수(x :number) :void {
}
----------------------------------
function 함수(x? :number) :void {
}
▲ 타입지정된 파라미터는 필수!!! 하지만 아래와 같이 변수? :number는 변수 :number|undefined와 같은 의미이다.
타입 확정을 위한 Narrowing과 Assertion
타입스크립트 프로그램에서 변수는 덜 정확한 타입에서 더 정확한 타입으로 변할 수 있습니다. 이 과정을 type narrowing이라고 한다.
function 함수(x :number|string) {
if(typeof x === 'string') {
return x + '1'
} else {
return x + 1
}
}
▲ 타입이 아직 확정되지 않은 경우 타입에러를 피하기 위해 Narrowing의 typeof 연산자 사용
(주의!! else 또는 else if를 안 쓰면 에러로 판단 위험)
Narrowing 판정 문법
1. typeof 변수
2. 속성명 in 오브젝트
3. 인스턴스 instanceof 부모
타입스크립트 의 Assertion은 프로그래머가 컴파일러에게 내가 너보다 타입에 더 잘 알고 있고, 나의 주장에 대해 의심하지 말라고 하는 것과 같다.
function 함수(x :number|string) {
let array :number[] = [];
array[0] = x as number;
}
▲ 타입 덮어쓰기로 x as number의 x는 number타입이 된다.
(Narrowing 할 때 사용하며 무슨 타입이 올지 100% 확신할 때 사용하도록 한다.)
참고 출처 : https://medium.com/nodejs-server/type-narrowing-ts-f62fc28f413f
결론
여러가지여러 가지 함수 타입 설정과 아직 확정하지 않는 타입에 대해서 좁은 영역으로 만들어주는 여러 가지 문법에 대해서 알고 있어야겠다.
경우의 수가 너무 많다..
'TypeScript' 카테고리의 다른 글
[TypeScript] implements 키워드 (1) | 2023.10.31 |
---|---|
[TypeScript] Generic 함수 만들기 (0) | 2023.10.25 |
[TypeScript] class / object 타입 지정 (0) | 2023.10.19 |
[TypeScript] 색다르게 타입도 변수에 담아서 쓰자(type alias) (0) | 2023.10.18 |
[TypeScript] 타입스크립트 기본 타입 정리 (0) | 2023.10.11 |
댓글