Promise 작업 시간 초과하면 실패로 간주하기 (feat. setTimeout, Promise.race)

개요 요즘 자바스크립트에서는 Promise 가 많이 쓰입니다. 이른바 비동기 작업이라고도 하죠. 여러가지 시간이 좀 걸리는 작업들을 다룰 때 편하기 때문인데요, 그런데 너무 오래 걸리는 작업을 취소하고 싶지 않나요? 예를 들어 게시글의 댓글을 불러오기 위해 api 서버에 요청을 날렸는데, 2~3초가 지나도 묵묵부답이라면, 이건 api 서버가 잘못되었다고 보고, 작업을 취소하고, 유저에게 “서버로부터 응답이 없습니다. 잠시 후 다시 […]

VScode + yarn 2 + Monorepo + TypeScript 프로젝트 세팅

목표 yarn 2 를 사용하여 더 효율적으로 패키지 관리하기 모노리포(Monorepo)에 발을 살짝 담구기 타입스크립트 기반으로 프로젝트 구성하기 (이건 사실 이 글에선 중요하지 않음) 사전 준비 타입스크립트를 하고 싶은 마음 vscode 를 에디터로 쓰고자 하는 마음 yarn 명령어 사전지식, yarn 을 선호하는 마음 아직 완벽하지는 않습니다. 특히 타입스크립트가 제대로 동작하는지에 대한 검증이 많이 필요합니다.. 일단 가장 […]

[Typescript] 인터페이스의 키 목록을 string 배열과 일치하도록 강제하기

개요 이런 걸 만들고 싶다고 가정합시다. 어떤 액션의 타입을 string 으로 받아온다고 합시다. 액션의 종류에 대해서 순회할 일도 있으므로 (값으로써 직접 가지고 있어야 하므로) 다음과 같이 배열로 만든다고 가정합시다. (‘go’ | ‘sleep’ | ‘dance’ 이런 식으로 직접 타입을 선언해봤자 이 타입을 기반으로 새 배열을 우리가 만들수는 없으므로.. 일단 배열을 직접 만들어야 합니다.) 그리고 각각의 액션을 […]

[typescript] readonly 배열의 includes 인수 범위를 확장하기 (Type Predicates)

개요 이 글의 제목을 정하는 데 좀 고민이 많이 들었습니다.. 뭔가 복합적인 문제인 듯 한데, 좀 길게 풀어서 설명하자면, const array = [‘a’, ‘b’, ‘c’] as const 와 같은 readonly 배열에서 ‘a’ | ‘b’ | ‘c’ 타입이 아닌 const needle: string = ‘needle’ 와 같은 string 타입을 이용해 array.includes(needle) 과 같이 사용하고 싶은데, 타입 문제 […]

타입스크립트(typescript) 프로젝트 세팅하기

개요 이 글을 읽기 전에 타입스크립트에 대한 기본적인 개념이 잡혀있어야 합니다. 타입스크립트에 대한 필요성, 기능, 문법 등은 다른 글을 참조해주세요. 트랜스파일링이란 코드를 코드로 변환한다는 뜻입니다. 실제로 node.js 에서 실행할 때에는 js 파일만 해석할 수 있는데, 그래서 ts 파일을 모두 js 파일로 변경해야 합니다. 타입스크립트 컴파일러인 tsc 가 그 역할을 합니다. typescript 를 설치하면 함께 설치되는 […]

Typescript + React + Tailwind + styled-components 맛보기 (작성중)

개요 극한의 효율적인 개발 환경을 만들기 위해 혼종을 만들어봅시다. 하하. 일단 실제로 프로젝트를 개발하고 나서 쓰는 포스팅은 아닙니다. 다만 다른 Vue 프로젝트를 진행해본 바 있고, 컴포넌트를 활용할 때 맞닥뜨리는 다양한 상황들을 미리 고려해보면서 작업 환경을 만들고자 했습니다. 실제로 개발했을 때 어느 부분에서는 실용적이지 않을 수 있습니다. 콘셉 Typescript 로 타입 자동완성 및 타입 불일치와 같은 […]

Scroll to top