TS Programming / Week2 함수

sunaaa·2022년 2월 24일
0

타입스크립트 프로그래밍 | 함수

새로 알게된 것

  1. 타입스크립트는 함수 본문에서 사용된 타입을 추론하지만(특별한 상황을 제외하면) 매개변수 타입은 추론하지 않는다.
    => 보통 함수의 매개변수 타입은 명시적으로 정의한다.

  2. 반환 타입은 자동으로 추론하지만 원하면 명시할 수 있다.

  3. 매개변수(parameter)와 인수(argument)의 차이

  • 매개변수는 함수선언의 일부이며 함수를 실행하는데 필요한 데이터 조각이다:formal parameter
  • 인수는 함수를 호출 할 때 전달해야 하는 데이터 조각이다: actual parameter
  1. ?를 이용해 선택적 매개변수를 지정할 수 있다. 함수의 매개변수를 선언할 때 필수 매개변수를 먼저 지정하고, 선택적 매개변수를 뒤에 추가한다. 기본매개변수(디폴트값 지정)는 어디에나 추가할 수 있다.
    => 선택적 매개변수가 앞쪽에 나오면 안되고, 뒤에 나와야 함.

  2. 함수는 최대 1개의 나머지 매개변수를 가질 수 있으며, 나머지 매개변수는 매개변수 목록 가장 마지막에 위치해야 한다.

  3. 구체타입(concrete type): 기대하는 타입을 정확하게 알고 있고, 실제 이 타입이 전달되었는지 확인할 때 유용함

  4. 제네릭타입 매개변수: 여러 장소에 타입 수준의 제한을 적용할 때 사용하는 플레이스홀더 타입

  5. 타입주도개발: 타입스크립트 프로그램을 구현할 때는 먼저 함수의 타입 시그니처를 정의한 다음(즉, 타입이 이끈다) 구현을 추가한다. 구현을 시작하기 전에 프로그램을 타입 수준에서 구상해보면 모든 것이 이치에 맞는지를 상위 수준에서 확인할 수 있다.

tsconfig

  • strictBindCallApply : 코드에서 .call, .apply, .bind를 안전하게 사용하려면 활성화.(strict모드에서는 자동 활성화)
    => apply(this, 배열) 인수 펼쳐서 전달 / call(this, arg1, arg2...) 인수 순서대로 전달/ bind(this, arg1, arg2, ...)() 새 함수 반환

  • noImplicitThis : 함수에서 항상 this타입을 명시적으로 설정하도록 강제함(클래스와 객체의 함수에서는 강제하지 않음)

  • downlevelIteration: ES2015이전 자바스크립트로 컴파일해서 커스텀 반복자를 활성화(but이전버전에서 반복자를 지원하려면 번들 크기가 커짐)

profile
Be Playful Front-end Developer

0개의 댓글