본문 바로가기

타입스크립트

[TypeScript] 클로저(closure) - 유효 범위 클로저 클로저는 지속되는 유효 범위(persistence scope)를 의미합니다. const add = (x: number) => {// 바깥쪽 유효 범위 시작 return (y:number): number => {// 안쪽 유효 범위 시작 return x + y;// 클로저 }// 안쪽 유효 범위 끝 }// 바깥쪽 유효 범위 끝 console.log(add(1)(2));// 3 다음과 같은 예에서 함수 안쪽 유효 범위만 놓고 본다면 'x'는 존재하지 않는 변수입니다. 이처럼 범위 안에서 의미를 알 수 없는 변수를 자유 변수(free variable)라고 합니다. 타입스크립트에서는 자유 변수가 존재한다면 바깥쪽 유효 범위에서 'x'라는 변수를 찾아 컴파일합니다. 따라서, 다음과 같이 사용하는 경우 'a.. 더보기
[TypeScript] 커리(curry) - 함수에 가로 여러개 사용하는 경우 커리(curry)란 함수형 프로그래밍 언어에서 커리는 함수 호출 연산자를 연속해서 사용합니다. 일반적인 함수는 호출하는 경우 '함수명(변수)'와 같이 사용합니다. 커리를 이용하는 경우 다음 예시와 같이 '함수명(변수)(변수)'와 같이 사용할 수 있습니다. const add = (x: number) => { return (y:number): number => { return x + y; } } console.log(add(2)(3)); // 5 다음과 같이 부분적으로도 사용할 수 있습니다. const add1 = add(1); console.log(add1(2)); // 3 부분적으로 사용할 수 있는 이유는 클로저(closure)라는 유효 범위를 가지기 때문입니다. [TypeScript] 클로저(closu.. 더보기
[TypeScript] 고차함수(high-order function) 2021.07.10 - [TypeScript] - [TypeScript] 커리(curry) - 함수에 가로 여러개 사용하는 경우 고차 함수란 어떤 함수가 또 다른 함수를 반환할 때 고차 함수라고 합니다. 1차 함수 함수가 아닌 단순히 값은 반환 2차 함수 1차 함수를 반환 n차 함수 n-1차 함수를 반환 1차 함수 const inc = (x: number): number => x + 1; console.log(inc(1));// 2 2차 함수 const add = (x: number) => { return (y:number): number => { return x + y; } } console.log(add(2)(3)); // 5 2차 함수를 호출할 때 'inc(2)(3)'과 같이 사용했는데 이는 커리(.. 더보기
[JavaScript] setInterval, clearInterval 사용법 setInterval 함수는 호출 주기에 따라 콜백 함수를 동작시키며 기본 구조는 다음과 같습니다. setInterval(콜백 함수, 호출 주기) clearInterval 함수를 이용하면 setInterval 함수를 멈출 수 있습니다. const period = 1000; let count = 0; console.log('program started...'); const id = setInterval(() => { if(count >= 3) { clearInterval(id); console.log('program finished...'); } else { console.log(++count); } }, period); // 1초마다 출력 // === 실행 결과 === // program started... 더보기
[Typescript] tsconfig.json 구성요소 //tsconfig.json { "compilerOptions": { "module": "commonjs", "esModuleInterop": true, "target": "es5", "moduleResolution": "node", "outDir": "dist", "baseUrl": ".", "sourceMap": true, "downlevelIteration": true, "noImplicitAny": false, "paths": {"*": ["node_modules/*"]} } } compierOptions tsc 명령 형식의 옵션 즉, 타입스크립트에서 자바스크립트로 변환하는데 사용되는 옵션 module tsconfig.ts 파일에서 compilerOptions 항목의 module 키는 동작 대상 .. 더보기
[TypeScript] 깊은 복사와 얕은 복사 - 배열 복사 원본 유지 다음은 깊은 복사의 예입니다. let original = 1; let copied = original; copied += 4; console.log(original);// 1 console.log(copied);// 5 일반 변수는 다음과 같이 복사하는 경우 값만 복사가 되어 원본은 값은 유지가 됩니다. 즉, 원본과 복사본은 별개의 변수입니다. 다음은 얕은 복사의 예입니다. let originalArray = [1, 2, 3, 4, 5]; let copiedArray = originalArray; copiedArray[0] = 0; console.log(originalArray); // [ 0, 2, 3, 4, 5 ] console.log(copiedArray);// [ 0, 2, 3, 4, 5 ] or.. 더보기
[TypeScript] 제네릭 방식 타입 - T에 관하여 제네릭 방식 타입은 T를 이용하여 타입을 변수화하여 사용할 수 있습니다. const arrayLength = (array: T[]): number => array.length; const alpha = ["A", "B", "C"]; const number = [1, 2, 3, 4]; console.log(arrayLength(alpha));// 3 console.log(arrayLength(number));// 4 즉, 'arrayLength(alpha)'의 T는 string이 되고 'arrayLength(number)'의 T는 number가 됩니다. 다음과 같은 형식으로 타입 변수를 생략할 수 있습니다. console.log(arrayLength(alpha));// 3 console.log(arrayL.. 더보기
[TypeScript] for of 문 - 배열의 값으로 반복 for ... of 문은 배열의 값으로 반복한다. const alpha = ['A', 'B', 'C'] for (let data of alpha) { console.log(data); } // 결과 // "A" // "B" // "C" 더보기

반응형