https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlCfBV%2FbtrGJFIfA1Y%2FPRKYYW8W2DAJAvkJEPFG51%2Fimg.jpg
이번 장에서는 타입스크립트 언어가 제공하는 반복기와 반복기 제공자, 그리고 생성기에 대해 알아보자.
실습 프로젝트 설정
이번 장에서 소개하는 예제는 Node.js 설정과 tsconfig.json 파일에 별도의 설정이 필요하다. 먼저 다음 명령을 터미널에서 실행하자.
npm init -y
npm i -D typescript ts-node @types/node
mkdir src
다음, tsc —init 명령으로 tsconfig.json 파일을 생성하고 다음 내용으로 대체하자.
// tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es2015",
"moduleResolution": "node",
"outDir": "dist",
"baseUrl": ".",
"sourceMap": true,
"downlevelIteration": true,
"noImplicitAny": false,
"paths": { "*": ["node_modules/*"] }
},
"include": ["src/**/*"]
}
반복기와 반복기 제공자
앞서 5장에서 for…in과 for…of 문을 공부했었다. 이 중 for…of 문은 다음 코드처럼 타입에 무관하게 배열에 담긴 값을 차례로 얻는 데 활용한다.
const numArray: number[] = [1,2,3]
for(let value of numArray)
console.log(value) // 1 2 3
const strArray: string[] = ["hello", "world", "!"]
for(let value op strArray)
console.log(value) // hello world !
for…of 문은 다른 프로그래밍 언어에서도 반복기 라는 주제로 흔히 볼 수 있다. 대부분 프로그래밍 언어에서 반복기는 다음과 같은 특징이 있는 객체이다.
다음 코드에서 createRangeIterable 함수는 next 메서드가 있는 객체를 반환하므로 이 함수는 반복기를 제공하는 역할을 한다. 이러한 반복기를 제공하는 역할을 하는 함수를 반복기 제공자라고 한다