티스토리 뷰
[Typescript] 함수에 타입 지정하는 법 & void 타입 / 타입확정 : Narrowing, Assertion
이채야채 2022. 2. 4. 22:40
Recap 함수
함수 이렇게 만들어 씁니다.
1. 길고 복잡한 코드 한단어로 축약 가능하다.
2. 숫자 집어넣으면 다른숫자나오는 매직 블랙박스 역할
함수에 타입지정하는 법
let y; <- type이 :any가 자동할당이된다.
함수 파라미터 자리에 타입지정을 해준다.
function 함수 (x : number) {
return x*2
}
이말은 즉 x 파라미터 자리에 숫자 타입만 입력 가능하다 라는말!
리턴되는값의 타입은 파라미터 옆에 써준다.
function 함수 (x : number) :number {
return x*2
}
return되는 값은 숫자타입으로 제한함 이라는 의미~
결론: 함수는 파라미터, 리턴값 타입지정가능
이렇게 쓰면 에러 뿜뿜~~
함수에서 void 타입 활용
void란?
리턴쓰기 싫은거에 붙여주면된다.
그래서 실수로 리턴하는것을 사전에 막아줄수있다
void 사전적의미 : 빈공간 텅비었다~
그래서 return 넣어주면 에러뿜뿜
필수파라미터 옵션파라미터
파라미터가 욥션일 경우엔? => 물음표를 사용하자
차이점! => 렉안뿜어!

⭐️ 중요 ⭐️
? 물음표 연산자 는 들어올수도 있다~ 라는 뜻이긴한데
변수 ? : number 랑 변수 : (number | undefined) 랑 똑같음
함수에서도 엄격한걸 좋아하는 타입스크립트
지금 x는 UNION 타입이다. (새로운타입!)
string + number 가능 console.log('sophie'+3)
number + number 가능 console.log(1+3)

=>> 엄격하게 코드를 짜줘야됨 전문용어로 네로잉~ Narrowing
Type Narrowing
어떤 변수가 타입이 아직 불확실하면
if문등으로 Narrowing 해줘야 조작이 가능하다.
function 연산(x: number | string) {
if (typeof x === "string") {
return x + "1";
} else {
return x + 1;
}
}
연산(2);
typeof <- Narrowing 해주는 문법
function 내함수(x: number | string) {
let arr :number[] = [];
if(typeof x === 'number'){
return arr[0] =x;
}
}
내함수(123);
Assertion 문법
타입 덮어씌기 : 왼쪽에 있는 x변수를 number로 덮어 씌우주세요
function 내함수(x: number | string) {
let arr :number[] = [];
arr[0] =x as number;
}
내함수(123);
Assertion 문법의 용도
1. Narrowing할때 쓴다.
let 이름 :string = '채영'
이름 as number; <- 타입을 a에서 b로 변경 불가능
2. 무슨문법이 들어올지 100% 확실할때 쓴다. => 그래서 굳이 쓸이유가? 남이짠코드 에러날때 왜 타입에러나는지모를때 비상용으로쓰자
'Typescript' 카테고리의 다른 글
[Typescript] 접근제한자(public, protected, private) (0) | 2022.06.01 |
---|---|
[Typescript] HTML 변경과 조작 (0) | 2022.02.05 |
[Typescript] 함수에 type alias지정하기 (0) | 2022.02.05 |
[Typescript] type 변수 만드는법 (0) | 2022.02.05 |
[Typescript] 기본 타입 정리 (primitive types) / union type, any, unknown (0) | 2022.02.04 |