티스토리 뷰

 


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% 확실할때 쓴다. => 그래서 굳이 쓸이유가? 남이짠코드 에러날때 왜 타입에러나는지모를때 비상용으로쓰자

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함