오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

Language/Javascript, typescript

[typescript] 날짜 String 타입으로 만들기

junha6316 2022. 2. 26. 11:53

타입스크립트에서는 많은 것들을 타입으로 만들어서 사용한다. 개인적인 생각으로는 일반 정적 타입 언어들이 컴파일 에러로 잡아주는 부분을 동적 타입언어에서 타입으로 만들었다는 생각이든다. 어쨌든 타입스크립트는 타입 에러를 통해 동적타입 언어의 단점을 어느정도 극복했다고 생각한다. 편하고 빠르고 재밌다. 오늘은 별걸 다 타입으로 만드는 타입 스크립트에서 아래와 같은 date string을 타입으로 만드는 방법에 대해 알아보겠다.

'19990201'
'20210226'

 

전체 과정은 마치 레고를 만드는 것처럼 만들면 된다. 먼저 숫자 타입을 만들어준다.

const type digit = 1|2|3|4|5|6|7|8|9|0;

 

1. Year 타입

연도는 아래와 같이 표기 가능하다. 개인용 컴퓨터가 처음 등장했을 때가 1974년이고 내가 쓴 코드가 1000년 넘게 지속 가능하다고 생각하지 않으므로 1900년대와 2000년을 기준으로 연도 타입을 작성해보겠다.

type year = `19${digit}${digit}` | `2${digit}${digit}${digit}`

2. Month 타입

달 타입은 다음과 같이 작성할 수 있다. 이로서 1월부터 12월까지 표기할 수 있게 되었다.

type fromOneToNine = 1|2|3|4|5|6|7|8|9
type month = `0${fromOneToNine}` | `1${0|1|2}`

3. Day 타입

날짜 타입은 다음과 같이 작성할 수 있다.

type day = `0${fromOneToNine}` | `{1|2}${digit}` | `3${0|1}`

 

4. 합체

이제 위에서 만든 타입을 자유롭게 이어 붙여주면 된다.

type YYYMMDD = `${year}${month}${day}`
type DateSeperateSlash = `${year}/${month}/${day}` // 1999/01/01
type date = `${month}/{day}` // 10/01

이런식으로 시간이나 타임존 같은 것도 붙여 볼 수 있다.

 

타입스크립트는 하나하나 커스텀하는 재미가 있는 언어다. 많은 타입을 작성할 수 록 다른 개발자가 실수할 확률을 줄여 줄 것이다.

즐코~