자바스크립트에서 함수는 기본적으로 function
키워드로 정의할 수 있다.
function funcName(param1, param2) {
//function body
}
이와 비슷하게 타입스크립트도 함수를 function
키워드를 이용해 정의할 수 있다.
function funcName(param1: type, param2: type): returnType {
//function body
}
실습에 앞서 환경을 구축합니다.
$ mkdir functions-and-methods
$ cd functions-and-methods
$ npm init --y
$ npm i -D typescript ts-node @types/node
$ asdf local nodejs 16.16.0 //본 실습은 nodejs 16.16.0 환경입니다.
$ npx tsc --init
$ mkdir src //소스 코드들을 보관합니다.
package.json
내용 일부 변경...
"main": "src/index.ts",
"scripts": {
"dev": "ts-node src",
"build": "tsc && node dist",
"test": "echo \\"Error: no test specified\\" && exit 1"
},
...
print.hello.ts
export function printHello(): void {
console.log("hello");
}
index.ts
import {printHello} from "./print.hello";
printHello();
실행 결과
자바스크립트와 타입스크립트는 함수형 언어와 객체 지향 언어의 특징을 모두 갖고 있다. → 이러한 특징 중 하나인 함수를 객체처럼 다루는 기능이 있다.
프로그래밍 언어가 함수와 변수를 구분하지 않는 기능을 제공한다는 것은 일등 함수(first-class function) 기능을 제공한다는 의미이다. → 이러한 기능을 제공하는 언어를 함수형 프로그래밍 언어라고 한다.