본문 바로가기
Typescript

230608 / 230802 타입스크립트 함수타입 정의, 함수 표현식에서 타입 정의

by hyerin1201 2023. 6. 8.

* 타입스크립트 함수 타입정의 기본 세팅

1 - 함수의 매개변수 타입정의 /  2 - 함수의 반환값 타입정의 2가지 가 필요하다.


* 반환값이 없는 함수?

함수에 반환값이 없는 경우에는 반환값의 타입을 void 로 정의해 준다.


*함수 자체의 대한 타입을 정의 할 수 있다 : 함수 시그니처 라고 한다.

함수 시그니처 적용은 화살표 함수!로 가능 

변수에 타입을 정의했던 것 처럼, 타입주석을 작성 ( 변수명 :  ( ) => )

-> 구문이 길어짐 -> type 키워드로 정의 가능 (* "type" 키워드를 호라용해서 타입을 정의)


type 키워드 = 함수 시그니처 값을 담아서

변수 위에 타입 키워드명을 입력한다.


* 함수의 매개변수안에 객체값을 넣어보자.

** 오류관리 방법

* 만약


프로그래밍 언어에서 1급시민(1등시민)이란? 다음과 같은 조건에 부합해야한다.

1. 변수에 값을 할당할 수 있어야 한다.

2. 다른 함수의 인자값으로 해당 값을 사용할 수 있어야 한다.

3. 다른 함수에서 반환 값으로 해당 값을 사용할 수 있어야한다.

 


* 함수는 객체다 ( function 클래스의 인스턴스 객체로 사용하는 것..이다)

*자바스크립트의 함수는 1급시민(1등시민) 이다

  • 자바스크립트 함수는 변수에 할당이 가능하다.
  • 자바스크림트 함수는 다른 함수의 인자값으로 사용가능
  • 자바스크립트 함수는 다른 함수의 반환값으로 사용가능

**함수 표현식에서 타입을 정의하는 방법

(클래스함수(일반함수) / 화살표함수 / 익명함수)

 

타입스크립트에서 아래와같은 함수 선언을 자주 볼수 있는데

풀어쓰면 이러하다. 

** 고차함수 문장이다.

변수명 = ( 함수 실행 문 ) (매개변수); : 함수의 실행 우선순위를 위해 소괄호를 입력함. 


화살표 함수 ( ES6 이후 )

타입스크립트에서의 화살표 함수

: 사용방식에 따라서 실행문 표기도 달라진다.

위 : 실행문 방식 정의 / 아래: 표현식문 방식 정의 (중괄호와 return문 생략)

  • 실행문 방식 정의 : C 언어 / 컴퓨터의 CPU에서 실행되는 코드 => 결과값을 자동으로 알려주지 않음. 따라서 반드시 return문이 필요.
  • 표현식문 방식 정의: CPU에서 실행될 결과값을 자동으로 알려줌.
  • 타입스크립트 및 자바스크립트는 복합실행문을 사용할 수 있는 함수.

 


타입스크립트에서 콜백함수 사용

(모듈로 가져오기)

init 함수의 매개변수로 callback 함수 가 온다.

"allowImportingTsExtensions": true,
    "noEmit": true,
    "noImplicitThis": false

(tsconfig.json) esm모듈 확장자 가져오도록 설정

 


중첩함수! (자바스크립트 함수는 1급시민이어서 중첩함수 사용 가능)

함수 > 함수 > 함수

 

결과값


고차함수!  (자바스크립트 함수는 1급시민이어서 )

고차함수 vs 보통함수

 

고차함수의 중첩함수의 마지막 결과값 : 클로저

 

위의 고차함수를 아래와같이 풀어쓸 수 있다..

고차함수 어렵다..


함수에서 객체를 매개변수로 정의

default 매개변수 : 매개변수값이 누락된다면 사용가능한 값.


* 함수의 매개변수 값을 객체의 key, value 값으로 사용하는 방법.

타입정의를 한다면

 


클래스 타입으로 메서드를 만들때, 메서드의 타입정의

 


** 두번째 방법


***클래스 안에 있는 값을 가져와 쓸 수 있는 방법 

키워드 static 을 붙인다.! => 정적으로 만든다.


타입스크립트에서도 메서드 체인 기법 사용가능

메서드 체인 기법 사용