자바스크립트 11

Typescript 타입을 배열로 정의해보자

Typescript는 Javascript를 Java, C, Swift, Kotlin처럼 정적 타입으로 쓸 수 있게 해주는 Javascript의 슈퍼셋이다. 빌드가 되면 브라우저 또는 Node.js가 이해할 수 있는 퓨어한 Javascript로 바뀌어 동적 타입인 Javascript의 태생적 한계를 극복하고 Javascript 생태계를 보다 안정적으로 쓸 수 있게 해준다. 다음을 살펴보자 let a = 1; console.log(typeof a); // number a = 'abc' console.log(typeof a); // string Javascript는 이처럼 변수를 선언해서 number 타입을 넣었다가 string 타입을 넣었다가 자유롭게 쓸 수 있다. 이처럼 동적 타입이기 때문에 때로는 변수를..

tsconfig의 baseUrl, paths 설정

개발을 하다 보면 직접 만든 utils 또는 프론트엔드의 경우 components 폴더, styles 폴더 등 현재 작업 파일과 다른 경로의 파일들을 import 시켜야 할 때가 있다. import 시킬 필요가 없는 파일은 아주 단순한 스크립트이거나 온갖 로직을 하나의 파일에 다 작성할 때인데 별로 좋지 않은 패턴이다. 그래서 파일의 상단에는 다음과 같은 현상이 일어난다. import styled from 'styled-components'; import { TextField } from '../../components/textfield'; ... line 1과 line2가 import 방식이 조금 다른 것을 알 수 있다. line 1의 styled의 경우 styled-components라는 npm 패키..

Array의 반복 관련 메서드(2) - reduce

JavaScript Array의 반복 관련 메서드 두 번째 포스트다. 첫 번째 포스트는 다음을 참고 바란다. Array의 반복 관련 메소드(1) forEach, map, reduce 등 javascript에서의 반복 관련 메소드가 있는데, 그냥 편하게 반복문이라고도 하지만 정확히는 Array 객체의 메소드이다. 다만 for문 등 반복문과 비교가 되어 반복문으로 분류하기 think-dev.tistory.com 첫 번째 포스트에서는 forEach, map, filter, find를 다뤘다. 위 메소드들은 실무에서 많이 쓰지만 reduce하나면 거의 커버가 가능하고, 추가적인 형태로도 구현이 가능하다. 물론 reduce 역시 별도로 break문은 없어서 find를 구현하긴 어렵지만 시간 복잡도를 생각하지 않는..

Array의 반복 관련 메서드(1)

forEach, map, reduce 등 javascript에서의 반복 관련 메서드가 있는데, 그냥 편하게 반복문이라고도 하지만 정확히는 Array 객체의 메서드이다. 다만 for문 등 반복문과 비교가 되어 반복문으로 분류하기도 하지만 뭐 이렇든 저렇든 상관은 없다. forEach const ary = [1, 2, 3, 4, 5]; ary.forEach((e) => { console.log(e); // 1, 2, 3, 4, 5 }); // 이렇게 람다식으로 써도 된다. ary.forEach(e => { console.log(e); // 1, 2, 3, 4, 5 }); // 두 번째 인자는 Array의 index를 의미한다. ary.forEach((e, i) = > { console.log(e); // 1..

tsc, tsc-watch 활용법

TypeScript는 JavaScript처럼 그 자체로 런타임에서 돌지 않는다. 다시 말해, TypeScript는 JavaScript로 컴파일이 되어야 Node.js든 브라우저에서든 작동할 수 있다. TypeScript는 JavaScript의 정적 타입 버전으로 원래 동적 타입 언어인 JavaScript를 좀 더 쓸 만하게 만든 언어이다. 물론 정적 타입 언어가 무조건 동적 타입 언어보다 좋은 것은 아니다. 경우에 따라 동적 타입 언어가 더 유리한 경우가 있다. 다만 협업을 하거나 오랜 기간 유지보수를 해야 할 경우에는 거의 대부분 정적 타입 언어가 유리하다. 아무튼 이제는 백엔드 영역에서 Node.js를 사용하거나, 수명 이상이 참여하는 프로젝트에서는 TypeScript는 필수적이다. Node.js의 ..