Javascript, Typescript
-
[JS] Trailing Commas에 대한 고찰 (feat.ESLint)Javascript, Typescript 2021. 12. 5. 18:00
eslint의 여러 설정들을 살펴보는 도중 comma-dangle이라는 옵션이 궁금해져서 구글링을 조금 해보게 되었다. 그러다가 medium에 올라온 한 게시글과 댓글들을 보고 재미있는 주제라고 생각이 되어서 이에 대한 내 생각을 글로 작성하게 되었다. Trailing-commas Trailing-commas 또는 Final-commas는 배열, 오브젝트 프로퍼티 등 콤마를 이용한 항목의 나열에서 마지막 항목에도 콤마를 붙이는 코딩 방식을 말한다(우리나라 말로는 후행 콤마? 정도로 부르는 것 같다). 자바스크립트에서는 이후에 더이상 요소가 존재하지 않아도 실행할 때 오류가 발생하지 않기 때문에 가능한 코딩 방식이다. MDN에 자세한 설명이 나와있다. // array에서의 trailing-commas co..
-
[JS] 비동기 작업들의 순차실행과 병렬실행Javascript, Typescript 2021. 11. 9. 22:55
어떤 결과를 만들기 위해 5개의 비동기 작업을 수행해야 한다고 가정해보자. 5개의 작업이 서로 연관되어 있어서 작업을 한 번에 하나씩 끝내야 한다면, 작업을 순차적(sequential)으로 처리해야한다. 하지만 5개의 작업이 서로 연관이 없어서 동시에 5개의 작업을 끝내도 상관이 없다면, 작업을 병렬적(parallel)으로 처리할 수 있다. 1초의 수행시간이 걸리는 비동기 작업을 다음과 같이 만들어보았다. 이 함수는 실행하고 1초 뒤에 task finished!라는 로그를 출력할 것이다. function handleTask(id) { return new Promise(resolve => { setTimeout(() => { console.log(`task${id} finished!`); resolve()..
-
[TS] Typescript의 메소드 오버로딩Javascript, Typescript 2021. 11. 4. 22:41
최근에 유용하게 사용하고 있는 TypeORM 이라는 Typescipt의 ORM 라이브러리는 데이터를 저장하는 함수로 repository 클래스의 save라는 메소드를 제공한다. 이 save 메소드는 공식문서에서 확인할 수 있는 것처럼, 매개변수로 단일 객체 또는 배열 두 가지를 다 넘겨줄 수 있기 때문에 굉장히 유용하다. 그리고 VS code 같은 IDE의 Intellisense를 통해, save메소드에 단일 객체를 넘겨주면 단일 객체를 resolve하는 Promise를, 배열을 넘겨주면 배열을 resolve하는 Promise를 반환한다는 것을 알 수 있다. 그렇다면 타입스크립트 컴파일러는 어떻게 단일 객체를 넘겨주면 단일 객체를, 배열을 넘겨주면 배열을 반환한다는 것을 알고 있는 걸까? save 메소드..
-
[TS] Typescript의 타입 검사Javascript, Typescript 2021. 11. 1. 20:58
타입스크립트의 공식문서에서 말하기를, Typescipt의 타입 검사는 해당 값의 ‘형태’에 관심을 갖는 덕 타이핑(구조적 타이핑)을 따른다고 한다. One of TypeScript’s core principles is that type checking focuses on the shape that values have. This is sometimes called “duck typing” or “structural typing”. Typescript의 이 타입 검사 시스템은 개발자에게 편리함을 줄 때도 있지만, 개발자가 예상하지 못한 곳에서 버그를 일으킬 수도 있다. 덕 타이핑(Duck typing) 또는 구조적 타이핑(Structural typing)이라고 하는 타입스크립트의 타입 체킹 방법에 대해 알..