함수는 어느 어플리케이션에서도 기초적인 구성 요소의 역할을 한다.
//함수 타입 표현식
function greeter(fn: (a: string) => void) {
fn("Hello, World");
}
function printToConsole(s: string) {
console.log(s);
}
greeter(printToConsole);
//타입 별칭 사용하기
type GreetFunction = (a: string) => void;
function greeter(fn: GreetFunction) {
// ...
}
Javascript에서, 함수들은 호출이 가능할 뿐만 아니라, 프로퍼티도 가질 수 있다.
하지만 일반 함수 타입 표현식 문법에서는 프로퍼티를 정의할 수 없다.
이것을 가능하게 하려면 객체 타입에 호출 시그니처를 사용하면 가능함.
type LogFn = (text:string) => void // 호출 시그니처를 통해 LogFn 함수 타입 지정
let log: LogFn = (text) => console.log(text) // 함수 log를 선언하며 LogFn 타입임을 명시
여기서 주의할 점은 호출 시그니처는 일반 타입 선언 처럼 :
가 아닌 =>
를 사용해 자체가 함수임을 나타낸다는 것.