- 타입스트립트의 함수 : 매개변수의 타입정의가 필수(정의하지 않으면 타입은 any 가 됨, 반환값의 정의도 필요
(*함수의 핵심 : 매개변수, 반환값)
선택적 매개변수는 반드시 필수 매개변수보다 뒤에 선언해줘야한다
- 나머지 매개변수
나머지 매개변수도 튜플타입으로 정의할 수 있다
함수타입의 표현식
- 타입별칭
- 호출시그니처 = 하이브리드 타입(*함수타입 정의 + 일반객체 요소 추가)
: 객체 타입으로 프로퍼티 추가 가능.
함수타입의 호환성
특정함수 타입을 다른 함수 타입에 적용할 떄, 문제가 없는지 판단하는 것을 의미.
이때, 적용가능 여부 판단의 기준은 크게 두가지 => 1) 반환값 타입 호환이 가능한지 2) 매개변수 타입 호환 가능한지
함수타입에서 매개변수의 갯수가 같은 경우, 기본 타입 계층구조와는 달리, 서브 타입에 슈퍼타입이 적용가능하다.
(한마디로 다운캐스팅가능 / 업캐스팅 불가)
매개변수의 갯수가 다를때
함수의 오버로딩
동일한 함수를 매개변수의 갯수 및 타입에 따라 여러가지 버전으로 만드는 타입스트립트 만의 독특한 문법
ex) 매개변수가 1개일때에는 모든 매개변수에 20을 곱한 값을 반환, 매개변수가 3개일때에는 모든 매개변수를 더한 값을 반환하는것이 가능.
함수 오버로딩을 사용하려면 반드시 오버로드용 시그니처 정의가 우선되어야 한다.
사용자 정의타입 함수
'Typescript' 카테고리의 다른 글
230602 Typescript 제네릭 / 타입변수응용 / map forEach 메서드 타입정의 / 제네릭 인터페이스, 타입별칭 / 제네릭 클래스 / 프로미스와 제네릭 (0) | 2023.06.02 |
---|---|
230601 Typescript 인터페이스 / 클래스 (0) | 2023.06.01 |
230531 Typescript 타입호환성 / 대수타입 / 타입추론 / 단언 / 타입좁히기 / 서로소 유니온 타입 활용 (0) | 2023.05.31 |
230530 Typescript의 객체, enum/Any/undefined/Unknown/void/never 타입 (0) | 2023.05.30 |
230530 Typescript 의 타입 (0) | 2023.05.30 |